nginx安装
本文是介绍使用源码编译安装,包括具体的编译参数信息。
正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。
安装make:1
yum -y install gcc automake autoconf libtool make
安装g++:1
yum install gcc gcc-c++
1.选定源码目录
可以是任何目录,本文选定的是/root/1
cd /root/
2.安装PCRE库
1 | cd /root/ |
3.安装zlib库
1 | cd /root/ |
4.安装ssl
1 | cd /root/ |
5.安装nginx
1 | cd /root/ |
php-fpm安装配置
nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。
nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx
本文以php-fpm为例介绍如何使nginx支持PHP
一、编译安装php-fpm
什么是PHP-FPM
PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.
PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。
新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以查看这里。
安装前准备
1 | yum -y install glibc libmcrypt-devel \ |
安装libiconv
1 | cd /root/ |
安装php
1 | cd /root/ |
PHP 编译安装时出现 undefined reference to `libiconv’ 错误的解决方法
在最后面添加 -liconv ,修改后如下
EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lldap -llber -lfreetype -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz -lxml2 -lz -lm -lssl -lcrypto -ldl -lz -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -liconv
报错信息为:
configure: error: off_t undefined; check your library configuration
在编译php时会遇到如上问题,这个问题一般在centos 64位系统中比较多见,解决如下1
2
3
4echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf&&ldconfig -v
其实就是在这个库配置文件中加入64位库到默认库查找路径中,不然就会报错
1.配置:
php配置
1 | vim /etc/php.ini |
php-fpm配置
1 | cd /usr/local/etc/ |
修改
1 | user = nginx |
2.运行php-fpm
1 | /usr/local/sbin/php-fpm |
3.nginx和php-fpm整合
1 | vim /usr/local/nginx/nginx.conf |
修改如下:
重新载入nginx的配置文件:
1 | /usr/local/nginx/sbin/nginx -s reload |
mysql安装
1 | wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz |
数据库数据默认目录datadir=/var/lib/mysql,可通过vim /etc/my.cnf 查看
修改后的目录是 mkdir -p /usr/local/mysql/data1
chown -R mysql:mysql ./
初始化数据库1
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
会生成初始root密码,记下这个问题用于首次登录./bin/mysql -uroot -p mysql
修改权限为root1
2chown -R root:root .
chown -R mysql:mysql data
安装完mysql之后,登陆以后,不管运行任何命令,总是提示这个”ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.”
step 1: SET PASSWORD = PASSWORD(‘your new password’);
step 2: ALTER USER ‘root‘@’localhost’ PASSWORD EXPIRE NEVER;
step 3: flush privileges;
注:
修改root密码:
1 | update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost'; |
开机自启动
在/usr/lib/systemd/system创建三个.service文件,内容如下:
1.nginx.service
1 | [Unit] |
2.mysql.service
1 | [Unit] |
3.php-fpm.service
1 | [Unit] |
4.注册service
1 | systemctl enable nginx.service #设置nginx服务为自启动服务 |
5.启动service
1 | systemctl start nginx.service #启动jenkins服务 |