您的位置:首页 > 运维架构 > Nginx

LNMP源码编译过程 CentOS-7.3+Nginx-1.11+MySQL-5.7+php-7.1

2017-03-28 00:00 716 查看
摘要: LNMP环境,nginx服务器

前提:安装wget

yum -y install wget

安装Nginx

#安装依赖

yum  install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel
# devel包含普通包,只比普通包多了头文件。动态链接库的话两种包都有。编译的时候如果需要用到这个库,那么需要安装这个库的devel,因为需要头文件

#下载Nginx

wget  http://nginx.org/download/nginx-1.11.12.tar.gz[/code] #解压

tar -zxvf nginx-1.11.12.tar.gz

cd nginx-1.11.12

#创建用户

useradd www

#编译安装

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.40 --with-pcre-jit --with-ld-opt=-ljemalloc

make && make install

#运行Nginx

/usr/local/nginx/sbin/nginx

#平滑重启,不会断开已连接用户的连接状态
/usr/local/nginx/sbin/nginx –s reload

#CentOS7 开放80端口

#centos7 添加80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
#重新载入
firewall-cmd --reload

#环境变量

#自启动和环境变量
vim /etc/profile
#添加
PATH=$PATH:/usr/local/nginx/sbin
export PATH

#新建Nginx服务

#新建服务
cd /lib/system/system
vim nginx.service
#内容
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReloadd=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=True

[Install]
WantedBy=multi-user.target

#设置开机自启动

#开机自启动
systemctl enable nginx.service

#修改Nginx配置与PHP通讯

#修改nginx配置
server{
listen 80;
server_name localhost;
root html;// web发布目录

location / {
index index.php index.html;
}

location ~/.php${
fastcgi_pass 127.0.0.1:9000; #php-fpm的监听地址和端口号
include fastcgi.conf;
}
}

php安装

#下载解压

wget http://cn2.php.net/distributions/php-7.1.3.tar.gz #解压
tar -zxvf php-7.1.3.tar.gz
cd php-7.1.3

#解决依赖

yum install gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel openssl openssl-devel libcurl libcurl-devel

#编译安装

#编译安装
./configure --prefix=/usr/local/php  --with-zlib --with-pdo-mysql --enable-mbstring --with-gd --with-png-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64 --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-openssl --with-curl --enable-sockets

make && make install

#配置文件

pwd
/root/packages/php-7.1.3

cp php.ini-development /usr/local/php/etc/php.ini

#切换至php的安装目录
cd /usr/local/php/etc

cp php-fpm.conf-default php-fpm.conf

cd ./php-fpm.d
cp www.conf-default www.conf #保持用户名一致

#启动php-fpm

#php-fpm 默认安装目录/usr/local/php/sbin
cd /usr/local/php/sbin

./php-fpm #启动php-fpm

#添加php的环境变量

vim /etc/profile
#添加
PATH=$PATH:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/php/sbin
export PATH
#立即生效
source /etc/profile

#添加至自启动

#添加至自启动
# 1. 修改rc.local
vim /etc/rc.local
#最后一行添加
/usr/local/php/sbin/php-fpm

chmod +x /etc/rc.d/rc.local

# 2.设置为系统服务
cp /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm

chkconfig --add php-fpm

#两种方式推荐第二种

MySQL的编译安装

#解决依赖

yum  install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison libaio libaio-devel

#新建boost目录

mkdir /usr/local/boost

#下载解压MySQL

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.17.tar.gz 
tar -zxvf mysql-5.7.17.tar.gz

cd mysql-5.7.17

#编译安装

#-DDOWNLOAD_BOOST加上此命令以后会自动下载boost 由于CentOS 7 支持的是systemd技术 所以默认添加选DWITH_SYSTEMD=1
cmake . -DDOWNLOAD_BOOST=ON -DWITH_BOOST=/usr/local/boost/ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data  -DMYSQL_TCP_PORT=3306  -DWITH_SYSTEMD=1

make && make install

#添加mysql用户 -s /bin/false 不登录 -s /bin/nologin 都是不允许登录

#创建mysql用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

#mysql安装完成以后

#安装完成后
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
bin/mysql_install_db --user=mysql    #在MySQL 5.7.6之前
bin/mysqld --initialize --user=mysql #MySQL 5.7.6及以上,生成一个随机密码

#bin/mysql_ssl_rsa_setup              #MySQL 5.7.6及以上如果希望服务器能够自动部署安全连接,请使用
#mysql_ssl_rsa_setup实用程序创建默认的SSL和RSA文件:
chown -R root .
chown -R mysql data
bin/mysqld --user=mysql &
#设置为系统服务 centos7以下使用systemV技术
cp support-files/mysql.server /etc/init.d/mysql.server
chkconfig --add mysqld
# 设置为系统服务 centos7以上使用systemD技术
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.servivce /usr/lib/systemd/system/
systemctl enable mysqld.service
systemctl start mysqld
# 如果您的安装包括systemd支持,则启动服务器:CentOS7 开始,已经支持systemd 而逐渐放弃使用systemV
# systemctl start mysqld
# 如果开启过程中提示create/write mysqld.pid file failed 报错可以 此错误是由于权限问题导致
mkdir /var/run/mydqld
chown mysql:mydql /var/run/mydqld   所以指定权限为mysql用户

#不生成随机密码
bin/mysqld --initialize-insecure --user=mysql #MySQL 5.7.6及以上,不生成随机密码
#连接数据库的方式
mysql -u root --skip-password
#登陆后重新设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

# mysqld_safe是在Unix上启动 mysqld服务器的推荐方法

#忘记密码
# 使用 service 停止服务
service mysql stop

# 或者 systemctl 停止服务
systemctl stop mysqld.service

# 命令行启动 mysql 跳过认证授权
mysqld_safe --skip-grant-tables &

# 客户端连接 mysql 服务
mysql -u root -p
update mysql.user set authentication_string=password('123') where user='root' and Host = 'localhost';
flush privileges;
exit

#编译出错

#cmake 或者 make && make install 出错时
make clean
rm CMakeCache.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息