在这篇文章中,我们将带领您了解CentOS7.3的全貌,包括1611编译安装PHP7的相关情况。同时,我们还将为您介绍有关CentOS7编译安装PHP7、CentOS7.1编译安装PHP7、CentO
在这篇文章中,我们将带领您了解CentOS 7.3的全貌,包括1611编译安装PHP7的相关情况。同时,我们还将为您介绍有关CentOS 7 编译安装PHP7、CentOS 7.1编译安装PHP7、CentOS 7.3.1611 编译安装 Nginx1.10.3+MySQL5.7.16+PHP7.1.2、CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2的知识,以帮助您更好地理解这个主题。
本文目录一览:- CentOS 7.3(1611)编译安装PHP7(centos7编译安装php7.4)
- CentOS 7 编译安装PHP7
- CentOS 7.1编译安装PHP7
- CentOS 7.3.1611 编译安装 Nginx1.10.3+MySQL5.7.16+PHP7.1.2
- CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2
CentOS 7.3(1611)编译安装PHP7(centos7编译安装php7.4)
总结
以上是小编为你收集整理的CentOS 7.3(1611)编译安装PHP7全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
CentOS 7 编译安装PHP7
编译安装
系统版本CentOS V7.6
PHP V7.3.3
#yum安装PHP编译时的依赖库
shell>yum install libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel net-snmp net-snmp-devel openssl openssl-devel libcurl libcurl-devel
#创建PHP用户和用户组(PHP用户没有登录权限)
shell>groupadd -r PHP && useradd -r -g PHP -s /bin/false -d /usr/local/PHP -M PHP
#下载PHP主程序
shell>wget -c -P /opt/tmp/ http://ee1.php.net/distributions/php-7.3.3.tar.gz
#进入目录并解压缩
shell>cd /opt/tmp
shell>tar zxvf PHP-7.3.3.tar.gz
shell>cd PHP-7.3.3
#配置PHP并编译安装
shell>./configure \
--prefix=/usr/local/PHP \
--enable-bcmath \
--enable-mbstring \
--enable-sockets \
--enable-ctype \
--enable-opcache \
--enable-fpm \
--enable-MysqLnd \
--with-gd \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-libxml-dir \
--with-gettext \
--with-snmp \
--with-openssl-dir \
--with-curl \
--with-fpm-user=Nginx \
--with-fpm-group=Nginx \
--with-MysqLi=MysqLnd \
--with-pdo-MysqL=MysqLnd \
--with-MysqL-sock=/var/lib/MysqL/MysqL.sock \
--without-pear \
--disable-phar
shell>make -j 4
shell>make install
#下载pear.phar并安装
shell>wget http://pear.PHP.net/go-pear.phar
shell>/usr/local/PHP/bin/PHP go-pear.phar
#查看编译成功后的PHP安装目录(需要确保至少存在MysqLi.so、pdo_MysqL.so这两个动态库文件)
shell>ls -lrt /usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20180731
#设置PHP7的配置文件跟脚本PHP.ini、PHP-fpm.conf、www.conf、PHP-fpm
shell>cp -rv PHP.ini-production /usr/local/PHP/etc/PHP.ini
shell>cp -rv /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
shell>cp -rv /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf
shell>cp -R ./sapi/fpm/init.d.PHP-fpm /etc/init.d/PHP-fpm
#添加PHP7的环境变量
shell>echo -e '\nexport PATH=/usr/local/PHP/bin:/usr/local/PHP/sbin:$PATH\n' >> /etc/profile && source /etc/profile
#设置PHP日志目录和PHP-fpm的运行进程ID文件(PHP-fpm.sock)目录
shell>mkdir -p /var/log/PHP-fpm/ && mkdir -p /var/run/PHP-fpm && cd /var/run/ && chown -R Nginx:Nginx PHP-fpm
#修改session的目录配置
shell>mkdir -p /var/lib/PHP/session && chown -R Nginx:Nginx /var/lib/PHP
#配置开机自启动,增加到主机sysV服务
shell>chmod +x /etc/init.d/PHP-fpm
shell>chkconfig --add PHP-fpm
shell>chkconfig PHP-fpm on
#测试PHP的配置文件是否正确合法
shell>PHP-fpm -t
#启动PHP服务
shell>service PHP-fpm start
#查看PHP-FPM进程
shell>ps -aux|grep PHP-fpm
#查看PHP7版本信息
shell>PHP -v
#PHP与Nginx整合
进入到Nginx配置文件中修改
在localtion中增加index.PHP
location / {
root html;
index index.html index.htmi index.PHP;
}
在location~\.PHP$去掉全部注释并更改$document_root
location ~ \.PHP$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
保存后退出
在网站根目录下编写PHP测试文件
vim index.PHP
<?PHP
echo PHPinfo();
?>
保存退出并重启Nginx服务器
注意!!!测试完毕后删除该文件
CentOS 7.1编译安装PHP7
1 创建PHP用户和用户组,并在github下载PHP7源码
首先创建一个名为PHP且没有登录权限
的用户和一个名为PHP的用户组,然后去GitHub下载PHP7源码包。
#######新建PHP用户和PHP组 [root@typecodes ~]# groupadd -r PHP && useradd -r -g PHP -s /bin/false -d /usr/local/PHP7 -M PHP ######从GitHub下载PHP7安装包 [root@typecodes ~]# wget -c --no-check-certificate -O PHP7-src-master.zip https://github.com/PHP/PHP-src/archive/master.zip ######开始解压PHP7包 [root@typecodes ~]# unzip -q PHP7-src-master.zip && cd PHP-src-master #####安装编译PHP7时需要的依赖包 [root@typecodes PHP-src-master]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
2 PHP7编译参数的配置
准备工作做好后,就开始正式配置PHP7的安装明细了。注意,操作时一定要先把下面反斜杠“\”后面添加的注释文字去掉!!!
执行上面的配置命令的结果如下图所示:
3 开始编译和安装PHP7
相对编译安装MysqL的大量cpu和内存消耗,PHP7的编译安装轻松多了,整个过程大约1个小时左右。
看到下图就代表已经编译安装好了PHP7!
4 选做步骤:执行make test命令进行测试
这是一个非必需的操作步骤,执行make test
命令。
有趣的一件事就是:在test期间,会和一个IP地址72.52.91.14建立tcp连接,它对应着PHP官网http://www.PHP.net。
执行完make test
命令后,最终的结果如下:
5 查看编译成功后的PHP7安装目录
由于需要和MysqL进行通信,所以需要特别查看PHP7安装后的lib扩展库目录(/usr/local/PHP7/lib/PHP/extensions/no-debug-non-zts-20141001/)。需要确保至少存在MysqLi.so
、pdo_MysqL.so
这两个动态库文件,如下图所示。
6 开始设置PHP7的配置文件PHP.ini、PHP-fpm.conf、www.conf和PHP-fpm脚本
可以用编译后的配置文件复制到PHP7的配置目录(/usr/local/PHP7/etc/),推荐使用《PHP7中php.ini、php-fpm和www.conf的配置》文中整理的3个PHP7配置文件和PHP-fpm服务控制脚本。
7 添加PHP的环境变量
将PHP编译生成的bin目录添加到当前Linux系统的环境变量中
8 设置PHP日志目录和PHP-fpm进程文件(PHP-fpm.sock)目录
其中,设置PHP-fpm进程目录的用户和用户组为Nginx
,并创建PHP会话session目录。
9 设置PHP开机启动以及测试配置文件是否正确
10 启动PHP服务
在完成上面的操作后,就可以正式使用PHP服务了。启动PHP进程服务的命令如下:
然后可以通过命令ps -aux|grep PHP
查看是否成功(图中的PHP-fpm进程数和进程用户Nginx都是由www.conf中pm.start_servers和user的值分别决定的):
11 查看PHP7版本信息
最后,可以通过命令PHP -v
查看当前PHP版本信息,图中可以看到当前PHP7还使用了Zend OPcache缓存,是因为在PHP.ini文件中添加了zend_extension=opcache.so
配置。
根据前文configure
编译参数设定,安装后的PHP7配置文件所在路径是/usr/local/PHP7/etc
。该目录下会有两个配置文件:PHP-fpm.conf
和PHP.ini
,以及一个文件夹PHP-fpm.d
(包含www.conf
文件)。
因此,这篇文章主要对这三个PHP配置文件的进行简单说明,具体的配置过程见本文末尾的附录
部分。
1 配置PHP.ini
PHP.ini是PHP运行核心配置文件:
######避免PHP信息暴露在http头中 expose_PHP = Off ######避免暴露PHP调用MysqL的错误信息 display_errors = Off ######在关闭display_errors后开启PHP错误日志(路径在PHP-fpm.conf中配置) log_errors = On ######设置PHP的扩展库路径 extension_dir = "/usr/local/PHP7/lib/PHP/extensions/no-debug-non-zts-20141001/" ######设置PHP的opcache和MysqL动态库 zend_extension=opcache.so extension=MysqLi.so extension=pdo_MysqL.so ######设置PHP的时区 date.timezone = PRC ######开启opcache [opcache] ; Determines if Zend OPCache is enabled opcache.enable=1 ######设置PHP脚本允许访问的目录(需要根据实际情况配置) ;open_basedir = /usr/share/Nginx/html;
2 配置PHP-fpm.conf
PHP-fpm.conf是PHP-fpm
进程服务的配置文件:
######设置错误日志的路径 error_log = /var/log/PHP-fpm/error.log ######引入www.conf文件中的配置 include=/usr/local/PHP7/etc/PHP-fpm.d/*.conf
3 配置www.conf(在PHP-fpm.d目录下)
www.conf这是PHP-fpm
进程服务的扩展配置文件:
######设置用户和用户组 user = Nginx group = Nginx ######根据Nginx.conf中的配置fastcgi_pass unix:/var/run/PHP-fpm/PHP-fpm.sock;设置PHP监听 ; listen = 127.0.0.1:9000 #####不建议使用 listen = /var/run/PHP-fpm/PHP-fpm.sock ######开启慢日志 slowlog = /PHP-fpm/$pool-slow.log request_slowlog_timeout = 10s ######设置PHP的session目录(所属用户和用户组都是Nginx) PHP_value[session.save_handler] = files PHP_value[session.save_path] = /var/lib/PHP/session
4 附录
在前文已经说明了,目前已经把这个关于Nginx、MysqL和PHP配置的全部托管在GitHub和coding.net上,地址如下:
GitHub地址:https://github.com/vfhky/mylnmp;
Coding地址:https://coding.net/u/vfhky/p/mylnmp/git。
文章来源:http://www.tuicool.com/articles/NjmQNj6
CentOS 7.3.1611 编译安装 Nginx1.10.3+MySQL5.7.16+PHP7.1.2
前传:
1、CentOS 7.3.1611 系统安装配置图解教程
http://www.jb51.net/os/RedHat/597874.html
2、CentOS 服务器初始化设置
http://www.jb51.net/article/133839.htm
准备篇
一、防火墙配置
CentOS 7.x 默认使用的是 firewall 作为防火墙,这里改为 iptables 防火墙。
1、关闭 firewall:
systemctl stop firewalld.service # 停止 firewall
systemctl disable firewalld.service # 禁止 firewall 开机启动
2、安装 iptables 防火墙
yum install iptables-services # 安装
vi /etc/sysconfig/iptables # 编辑防火墙配置文件
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! # 保存退出
systemctl restart iptables.service # 最后重启防火墙使配置生效
systemctl enable iptables.service # 设置防火墙开机启动
/usr/libexec/iptables/iptables.init restart # 重启防火墙
二、关闭 SELINUX
vi /etc/selinux/config
#SELINUX=enforcing # 注释掉
#SELINUXTYPE=targeted # 注释掉
SELINUX=disabled # 增加
:wq! # 保存退出
setenforce 0 # 使配置立即生效
三 、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/ 软件名字
四、下载软件包
1、下载 nginx
http://nginx.org/download/nginx-1.10.3.tar.gz
2、下载 MySQL
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.16.tar.gz
3、下载 php
http://cn2.php.net/distributions/php-7.1.2.tar.gz
4、下载 cmake(MySQL 编译工具)
https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
5、下载 pcre (支持 nginx 伪静态)
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
6、下载 openssl(nginx 扩展)
https://www.openssl.org/source/openssl-1.1.0e.tar.gz
7、下载 zlib(nginx 扩展)
http://www.zlib.net/zlib-1.2.11.tar.gz
8、下载 libmcrypt(php 扩展)
https://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
9、下载 yasm(php 扩展)
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
10、t1lib(php 扩展)
http://download.freenas.org/distfiles/t1lib-5.1.2.tar.gz
11、下载 gd 库安装包
https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz
12、libvpx(gd 库需要)
https://codeload.github.com/webmproject/libvpx/tar.gz/v1.3.0
13、tiff(gd 库需要)
http://download.osgeo.org/libtiff/tiff-4.0.7.tar.gz
14、libpng(gd 库需要)
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.28.tar.gz
15、freetype(gd 库需要)
http://download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.gz
16、jpegsrc(gd 库需要)
http://www.ijg.org/files/jpegsrc.v9b.tar.gz
17、Boost(编译 mysql 需要)
https://ufpr.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
以上软件包上传到 /usr/local/src 目录
五、安装编译工具及库文件(使用 yum 命令安装)
yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
安装篇
以下是用 putty 工具远程登录到服务器,在命令行下面操作的
一、安装 MySQL
1、安装 cmake
cd /usr/local/src
tar zxvf cmake-3.7.2.tar.gz
cd cmake-3.7.2
./configure
make
make install
2、安装 MySQL
cd /usr/local/src
mkdir -p /usr/local/boost
cp boost_1_59_0.tar.gz /usr/local/boost
groupadd mysql # 添加 mysql 组
useradd -g mysql mysql -s /bin/false # 创建用户 mysql 并加入到 mysql 组,不允许 mysql 用户直接登录系统
mkdir -p /data/mysql # 创建 MySQL 数据库存放目录
chown -R mysql:mysql /data/mysql # 设置 MySQL 数据库存放目录权限
mkdir -p /usr/local/mysql # 创建 MySQL 安装目录
cd /usr/local/src # 进入软件包存放目录
tar zxvf mysql-5.7.16.tar.gz # 解压
cd mysql-5.7.16 # 进入目录
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=OFF -DWITH_BOOST=/usr/local/boost
注意:可以使用 - DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost 参数在线安装 boost 软件包,需要服务器联网,容易下载失败。
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_EMBEDDED_SERVER=OFF -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
make # 编译
make install # 安装
编译出错,重新编译前要删除编译失败的文件,重新编译时,需要清除旧的对象文件和缓存信息。
make clean
rm -f CMakeCache.txt
rm -rf /etc/my.cnf # 删除系统默认的配置文件(如果默认没有就不用删除)
cd /usr/local/mysql # 进入 MySQL 安装目录
./bin/mysqld --user=mysql --initialize --basedir=/usr/local/mysql --datadir=/data/mysql # 生成 mysql 系统数据库
--initialize 表示默认生成密码,--initialize-insecure 表示不生成密码,密码为空。
看到这一行 [Note] A temporary password is generated for root@localhost: i>X18*=Rav=7
cp /usr/local/mysql/support-files/my-default.cnf /usr/local/mysql/my.cnf
ln -s /usr/local/mysql/my.cnf/etc/my.cnf # 添加到 /etc 目录的软连接
cp /usr/local/mysql/support-files/mysql.server/etc/rc.d/init.d/mysqld # 把 Mysql 加入系统启动
chmod 755 /etc/init.d/mysqld # 增加执行权限
chkconfig mysqld on # 加入开机启动
vi /etc/rc.d/init.d/mysqld # 编辑
basedir=/usr/local/mysql #MySQL 程序安装路径
datadir=/data/mysql #MySQl 数据库存放目录
:wq! # 保存退出
service mysqld start # 启动
vi /etc/profile # 把 mysql 服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
:wq! # 保存退出
source /etc/profile # 使配置立刻生效
下面这两行把 myslq 的库文件链接到系统默认的位置,这样你在编译类似 PHP 等软件时可以不用指定 mysql 的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
mkdir /var/lib/mysql # 创建目录
ln -s /tmp/mysql.sock/var/lib/mysql/mysql.sock # 添加软链接
mysql_secure_installation # 修改 Mysql 密码,输入之前生成的密 CSJlm3DyTG.d 回车,根据提示操作。
Press y|Y for Yes, any other key for No: y # 是否安装密码安全插件?选择 y
There are three levels of password validation policy: # 有以下几种密码强度选择
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 # 选择 0, 只要 8 位数字即可,选 1 要有大写,小写,特殊字符等
UNINSTALL PLUGIN validate_password ; # 卸载密码强度插件
use mysql;
update mysql.user set authentication_string=password (''123456'') where user=''root'' ; # 登录 mysql 控制台修改
ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''123456''; # 修改密码
二、安装 Nginx
1、安装 pcre
cd /usr/local/src
mkdir /usr/local/pcre
tar zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make
make install
2、安装 openssl
cd /usr/local/src
mkdir /usr/local/openssl
tar zxvf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e
./config --prefix=/usr/local/openssl
make
make install
vi /etc/profile
export PATH=$PATH:/usr/local/openssl/bin
:wq!
source /etc/profile
3、安装 zlib
cd /usr/local/src
mkdir /usr/local/zlib
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install
4、安装 Nginx
groupadd www
useradd -g www www -s /bin/false
cd /usr/local/src
tar zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40
注意:--with-openssl=/usr/local/src/openssl-1.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40 指向的是源码包解压的路径,而不是安装的路径,否则会报错
make
make install
/usr/local/nginx/sbin/nginx # 启动 Nginx
设置 nginx 开机启动
vi /etc/rc.d/init.d/nginx # 编辑启动文件添加下面内容
1 ############################################################
2
3 #!/bin/sh
4
5 #
6
7 # nginx - this script starts and stops the nginx daemon
8
9 #
10
11 # chkconfig: - 85 15
12
13 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \
14
15 # proxy and IMAP/POP3 proxy server
16
17 # processname: nginx
18
19 # config: /etc/nginx/nginx.conf
20
21 # config: /usr/local/nginx/conf/nginx.conf
22
23 # pidfile: /usr/local/nginx/logs/nginx.pid
24
25 # Source function library.
26
27 . /etc/rc.d/init.d/functions
28
29 # Source networking configuration.
30
31 . /etc/sysconfig/network
32
33 # Check that networking is up.
34
35 [ "$NETWORKING" = "no" ] && exit 0
36
37 nginx="/usr/local/nginx/sbin/nginx"
38
39 prog=$(basename $nginx)
40
41 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
42
43 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
44
45 lockfile=/var/lock/subsys/nginx
46
47 make_dirs() {
48
49 # make required directories
50
51 user=`$nginx -V 2>&1 | grep "configure arguments:" | sed ''s/[^*]*--user=\([^ ]*\).*/\1/g'' -`
52
53 if [ -z "`grep $user /etc/passwd`" ]; then
54
55 useradd -M -s /bin/nologin $user
56
57 fi
58
59 options=`$nginx -V 2>&1 | grep ''configure arguments:''`
60
61 for opt in $options; do
62
63 if [ `echo $opt | grep ''.*-temp-path''` ]; then
64
65 value=`echo $opt | cut -d "=" -f 2`
66
67 if [ ! -d "$value" ]; then
68
69 # echo "creating" $value
70
71 mkdir -p $value && chown -R $user $value
72
73 fi
74
75 fi
76
77 done
78
79 }
80
81 start() {
82
83 [ -x $nginx ] || exit 5
84
85 [ -f $NGINX_CONF_FILE ] || exit 6
86
87 make_dirs
88
89 echo -n $"Starting $prog: "
90
91 daemon $nginx -c $NGINX_CONF_FILE
92
93 retval=$?
94
95 echo
96
97 [ $retval -eq 0 ] && touch $lockfile
98
99 return $retval
100
101 }
102
103 stop() {
104
105 echo -n $"Stopping $prog: "
106
107 killproc $prog -QUIT
108
109 retval=$?
110
111 echo
112
113 [ $retval -eq 0 ] && rm -f $lockfile
114
115 return $retval
116
117 }
118
119 restart() {
120
121 #configtest || return $?
122
123 stop
124
125 sleep 1
126
127 start
128
129 }
130
131 reload() {
132
133 #configtest || return $?
134
135 echo -n $"Reloading $prog: "
136
137 killproc $nginx -HUP
138
139 RETVAL=$?
140
141 echo
142
143 }
144
145 force_reload() {
146
147 restart
148
149 }
150
151 configtest() {
152
153 $nginx -t -c $NGINX_CONF_FILE
154
155 }
156
157 rh_status() {
158
159 status $prog
160
161 }
162
163 rh_status_q() {
164
165 rh_status >/dev/null 2>&1
166
167 }
168
169 case "$1" in
170
171 start)
172
173 rh_status_q && exit 0
174
175 $1
176
177 ;;
178
179 stop)
180
181 rh_status_q || exit 0
182
183 $1
184
185 ;;
186
187 restart|configtest)
188
189 $1
190
191 ;;
192
193 reload)
194
195 rh_status_q || exit 7
196
197 $1
198
199 ;;
200
201 force-reload)
202
203 force_reload
204
205 ;;
206
207 status)
208
209 rh_status
210
211 ;;
212
213 condrestart|try-restart)
214
215 rh_status_q || exit 0
216
217 ;;
218
219 *)
220
221 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
222
223 exit 2
224
225 esac
226
227 ############################################################
:wq! # 保存退出
chmod 775 /etc/rc.d/init.d/nginx # 赋予文件执行权限
chkconfig nginx on # 设置开机启动
/etc/rc.d/init.d/nginx restart # 重启
在浏览器中打开服务器 IP 地址,会看到下面的界面,说明 Nginx 安装成功。
三、安装 php
1、安装 yasm
cd /usr/local/src
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install
2、安装 libmcrypt
cd /usr/local/src
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
3、安装 libvpx
cd /usr/local/src
tar zxvf libvpx-1.3.0.tar.gz
cd libvpx-1.3.0
./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
make
make install
4、安装 tiff
cd /usr/local/src
tar zxvf tiff-4.0.7.tar.gz
cd tiff-4.0.7
./configure --prefix=/usr/local/tiff --enable-shared
make
make install
5、安装 libpng
cd /usr/local/src
tar zxvf libpng-1.6.28.tar.gz
cd libpng-1.6.28
./configure --prefix=/usr/local/libpng --enable-shared
make
make install
6、安装 freetype
cd /usr/local/src
tar zxvf freetype-2.7.1.tar.gz
cd freetype-2.7.1
./configure --prefix=/usr/local/freetype --enable-shared
make
make install
7、安装 jpeg
cd /usr/local/src
tar zxvf jpegsrc.v9b.tar.gz
cd jpeg-9b
./configure --prefix=/usr/local/jpeg --enable-shared
make
make install
8、安装 libgd
cd /usr/local/src
tar zxvf libgd-2.1.1.tar.gz
cd libgd-2.1.1
./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/lib64 --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
make
make install
说明:如果 libgd 编译失败,可以先跳过,直接使用系统默认的 2.1.0 版本,在编译 php 的时候把参数 --with-gd=/usr/local/libgd 修改为 --with-gd 即可。
9、安装 t1lib
cd /usr/local/src
tar zxvf t1lib-5.1.2.tar.gz
cd t1lib-5.1.2
./configure --prefix=/usr/local/t1lib --enable-shared
make without_doc
make install
10、安装 php
注意:如果系统是 64 位,请执行以下两条命令,否则安装 php 会出错。
\cp -frp /usr/lib64/libltdl.so* /usr/lib/
\cp -frp /usr/lib64/libXpm.so* /usr/lib/
cd /usr/local/src
tar -zvxf php-7.1.2.tar.gz
cd php-7.1.2
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype --enable-mysqlnd
make # 编译
make install # 安装
说明:如果提示 libgd 版本错误,把 php 编译参数 --with-gd=/usr/local/libgd 修改为 --with-gd 即可。
cp php.ini-production/usr/local/php/etc/php.ini # 复制 php 配置文件到安装目录
rm -rf /etc/php.ini # 删除系统自带配置文件
ln -s /usr/local/php/etc/php.ini/etc/php.ini # 添加软链接到 /etc 目录
cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf # 拷贝模板文件为 php-fpm 配置文件
ln -s /usr/local/php/etc/php-fpm.conf/etc/php-fpm.conf # 添加软连接到 /etc 目录
vi /usr/local/php/etc/php-fpm.conf # 编辑
pid = run/php-fpm.pid # 取消前面的分号
:wq! # 保存退出
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
vi /usr/local/php/etc/php-fpm.d/www.conf # 编辑
user = www # 设置 php-fpm 运行账号为 www
group = www # 设置 php-fpm 运行组为 www
设置 php-fpm 开机启动
cp /usr/local/src/php-7.1.2/sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm # 拷贝 php-fpm 到启动目录
chmod +x /etc/rc.d/init.d/php-fpm # 添加执行权限
chkconfig php-fpm on # 设置开机启动
vi /usr/local/php/etc/php.ini # 编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出 PHP 可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC # 设置时区
找到:expose_php = On
修改为:expose_php = Off # 禁止显示 php 版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON # 支持 php 短标签
找到 opcache.enable=0
修改为 opcache.enable=1 #php 支持 opcode 缓存
找到:;opcache.enable_cli=1 #php 支持 opcode 缓存
修改为:opcache.enable_cli=0
在最后一行添加:zend_extension=opcache.so # 开启 opcode 缓存功能
:wq! # 保存退出
配置 nginx 支持 php
vi /usr/local/nginx/conf/nginx.conf
修改 /usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改
user www www; # 首行 user 去掉注释,修改 Nginx 运行组为 www www;必须与 /usr/local/php/etc/php-fpm.conf 中的 user,group 配置相同,否则 php 运行出错
index index.html index.htm index.php; # 添加 index.php
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消 FastCGI server 部分 location 的注释,注意 fastcgi_param 行的参数,改为 $document_root$fastcgi_script_name, 或者使用绝对路径
/etc/init.d/nginx restart # 重启 nginx
service php-fpm start # 启动 php-fpm
测试篇
cd /usr/local/nginx/html/ # 进入 nginx 默认网站根目录
rm -rf /usr/local/nginx/html/* # 删除默认测试页
vi index.php # 新建 index.php 文件
<?php
phpinfo();
?>
:wq! # 保存退出
chown www.www/usr/local/nginx/html/-R # 设置目录所有者
chmod 700 /usr/local/nginx/html/-R # 设置目录权限
在浏览器中打开服务器 IP 地址,会看到下面的界面
至此,CentOS 7.3.1611 编译安装 Nginx1.10.3+MySQL5.7.16+PHP7.1.2 教程完成。
CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2
前传:
1、CentOS 7.3.1611系统安装配置图解教程
http://www.jb51.net/os/RedHat/597874.html
2、CentOS服务器初始化设置
http://www.jb51.net/article/133839.htm
准备篇
一、防火墙配置
CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙。
1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2、安装iptables防火墙
yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
/usr/libexec/iptables/iptables.init restart #重启防火墙
二、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
三 、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字
四、下载软件包
1、下载nginx
http://nginx.org/download/nginx-1.10.3.tar.gz
2、下载MySQL
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.16.tar.gz
3、下载php
http://cn2.php.net/distributions/php-7.1.2.tar.gz
4、下载cmake(MySQL编译工具)
https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
5、下载pcre (支持nginx伪静态)
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
6、下载openssl(nginx扩展)
https://www.openssl.org/source/openssl-1.1.0e.tar.gz
7、下载zlib(nginx扩展)
http://www.zlib.net/zlib-1.2.11.tar.gz
8、下载libmcrypt(php扩展)
https://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
9、下载yasm(php扩展)
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
10、t1lib(php扩展)
http://download.freenas.org/distfiles/t1lib-5.1.2.tar.gz
11、下载gd库安装包
https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz
12、libvpx(gd库需要)
https://codeload.github.com/webmproject/libvpx/tar.gz/v1.3.0
13、tiff(gd库需要)
http://download.osgeo.org/libtiff/tiff-4.0.7.tar.gz
14、libpng(gd库需要)
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.28.tar.gz
15、freetype(gd库需要)
http://download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.gz
16、jpegsrc(gd库需要)
http://www.ijg.org/files/jpegsrc.v9b.tar.gz
17、Boost(编译mysql需要)
https://ufpr.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
以上软件包上传到/usr/local/src目录
五、安装编译工具及库文件(使用yum命令安装)
yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
安装篇
以下是用putty工具远程登录到服务器,在命令行下面操作的
一、安装MySQL
1、安装cmake
cd /usr/local/src
tar zxvf cmake-3.7.2.tar.gz
cd cmake-3.7.2
./configure
make
make install
2、安装MySQL
cd /usr/local/src
mkdir -p /usr/local/boost
cp boost_1_59_0.tar.gz /usr/local/boost
groupadd mysql #添加mysql组
useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
mkdir -p /data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql /data/mysql #设置MySQL数据库存放目录权限
mkdir -p /usr/local/mysql #创建MySQL安装目录
cd /usr/local/src #进入软件包存放目录
tar zxvf mysql-5.7.16.tar.gz #解压
cd mysql-5.7.16 #进入目录
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=OFF -DWITH_BOOST=/usr/local/boost
注意:可以使用-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost参数在线安装boost软件包,需要服务器联网,容易下载失败。
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_EMBEDDED_SERVER=OFF -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
make #编译
make install #安装
编译出错, 重新编译前要删除编译失败的文件,重新编译时,需要清除旧的对象文件和缓存信息。
make clean
rm -f CMakeCache.txt
rm -rf /etc/my.cnf #删除系统默认的配置文件(如果默认没有就不用删除)
cd /usr/local/mysql #进入MySQL安装目录
./bin/mysqld --user=mysql --initialize --basedir=/usr/local/mysql --datadir=/data/mysql #生成mysql系统数据库
--initialize表示默认生成密码, --initialize-insecure 表示不生成密码, 密码为空。
看到这一行[Note] A temporary password is generated for root@localhost: i>X18*=Rav=7
cp /usr/local/mysql/support-files/my-default.cnf /usr/local/mysql/my.cnf
ln -s /usr/local/mysql/my.cnf /etc/my.cnf #添加到/etc目录的软连接
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动
vi /etc/rc.d/init.d/mysqld #编辑
basedir=/usr/local/mysql #MySQL程序安装路径
datadir=/data/mysql #MySQl数据库存放目录
:wq! #保存退出
service mysqld start #启动
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
:wq! #保存退出
source /etc/profile #使配置立刻生效
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
mkdir /var/lib/mysql #创建目录
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加软链接
mysql_secure_installation #修改Mysql密码,输入之前生成的密CSJlm3DyTG.d回车,根据提示操作。
Press y|Y for Yes, any other key for No: y #是否安装密码安全插件?选择y
There are three levels of password validation policy: #有以下几种密码强度选择
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 #选择0,只要8位数字即可,选1要有大写,小写,特殊字符等
UNINSTALL PLUGIN validate_password ; #卸载密码强度插件
use mysql;
update mysql.user set authentication_string=password(''123456'') where user=''root'' ; #登录mysql控制台修改
ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password AS ''123456''; #修改密码
二、安装Nginx
1、安装pcre
cd /usr/local/src
mkdir /usr/local/pcre
tar zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure --prefix=/usr/local/pcre
make
make install
2、安装openssl
cd /usr/local/src
mkdir /usr/local/openssl
tar zxvf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e
./config --prefix=/usr/local/openssl
make
make install
vi /etc/profile
export PATH=$PATH:/usr/local/openssl/bin
:wq!
source /etc/profile
3、安装zlib
cd /usr/local/src
mkdir /usr/local/zlib
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install
4、安装Nginx
groupadd www
useradd -g www www -s /bin/false
cd /usr/local/src
tar zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40
注意:--with-openssl=/usr/local/src/openssl-1.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40指向的是源码包解压的路径,而不是安装的路径,否则会报错
make
make install
/usr/local/nginx/sbin/nginx #启动Nginx
设置nginx开机启动
vi /etc/rc.d/init.d/nginx #编辑启动文件添加下面内容
1 ############################################################
2
3 #!/bin/sh
4
5 #
6
7 # nginx - this script starts and stops the nginx daemon
8
9 #
10
11 # chkconfig: - 85 15
12
13 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \
14
15 # proxy and IMAP/POP3 proxy server
16
17 # processname: nginx
18
19 # config: /etc/nginx/nginx.conf
20
21 # config: /usr/local/nginx/conf/nginx.conf
22
23 # pidfile: /usr/local/nginx/logs/nginx.pid
24
25 # Source function library.
26
27 . /etc/rc.d/init.d/functions
28
29 # Source networking configuration.
30
31 . /etc/sysconfig/network
32
33 # Check that networking is up.
34
35 [ "$NETWORKING" = "no" ] && exit 0
36
37 nginx="/usr/local/nginx/sbin/nginx"
38
39 prog=$(basename $nginx)
40
41 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
42
43 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
44
45 lockfile=/var/lock/subsys/nginx
46
47 make_dirs() {
48
49 # make required directories
50
51 user=`$nginx -V 2>&1 | grep "configure arguments:" | sed ''s/[^*]*--user=\([^ ]*\).*/\1/g'' -`
52
53 if [ -z "`grep $user /etc/passwd`" ]; then
54
55 useradd -M -s /bin/nologin $user
56
57 fi
58
59 options=`$nginx -V 2>&1 | grep ''configure arguments:''`
60
61 for opt in $options; do
62
63 if [ `echo $opt | grep ''.*-temp-path''` ]; then
64
65 value=`echo $opt | cut -d "=" -f 2`
66
67 if [ ! -d "$value" ]; then
68
69 # echo "creating" $value
70
71 mkdir -p $value && chown -R $user $value
72
73 fi
74
75 fi
76
77 done
78
79 }
80
81 start() {
82
83 [ -x $nginx ] || exit 5
84
85 [ -f $NGINX_CONF_FILE ] || exit 6
86
87 make_dirs
88
89 echo -n $"Starting $prog: "
90
91 daemon $nginx -c $NGINX_CONF_FILE
92
93 retval=$?
94
95 echo
96
97 [ $retval -eq 0 ] && touch $lockfile
98
99 return $retval
100
101 }
102
103 stop() {
104
105 echo -n $"Stopping $prog: "
106
107 killproc $prog -QUIT
108
109 retval=$?
110
111 echo
112
113 [ $retval -eq 0 ] && rm -f $lockfile
114
115 return $retval
116
117 }
118
119 restart() {
120
121 #configtest || return $?
122
123 stop
124
125 sleep 1
126
127 start
128
129 }
130
131 reload() {
132
133 #configtest || return $?
134
135 echo -n $"Reloading $prog: "
136
137 killproc $nginx -HUP
138
139 RETVAL=$?
140
141 echo
142
143 }
144
145 force_reload() {
146
147 restart
148
149 }
150
151 configtest() {
152
153 $nginx -t -c $NGINX_CONF_FILE
154
155 }
156
157 rh_status() {
158
159 status $prog
160
161 }
162
163 rh_status_q() {
164
165 rh_status >/dev/null 2>&1
166
167 }
168
169 case "$1" in
170
171 start)
172
173 rh_status_q && exit 0
174
175 $1
176
177 ;;
178
179 stop)
180
181 rh_status_q || exit 0
182
183 $1
184
185 ;;
186
187 restart|configtest)
188
189 $1
190
191 ;;
192
193 reload)
194
195 rh_status_q || exit 7
196
197 $1
198
199 ;;
200
201 force-reload)
202
203 force_reload
204
205 ;;
206
207 status)
208
209 rh_status
210
211 ;;
212
213 condrestart|try-restart)
214
215 rh_status_q || exit 0
216
217 ;;
218
219 *)
220
221 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
222
223 exit 2
224
225 esac
226
227 ############################################################
:wq! #保存退出
chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
chkconfig nginx on #设置开机启动
/etc/rc.d/init.d/nginx restart #重启
在浏览器中打开服务器IP地址,会看到下面的界面,说明Nginx安装成功。
三、安装php
1、安装yasm
cd /usr/local/src
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install
2、安装libmcrypt
cd /usr/local/src
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make
make install
3、安装libvpx
cd /usr/local/src
tar zxvf libvpx-1.3.0.tar.gz
cd libvpx-1.3.0
./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
make
make install
4、安装tiff
cd /usr/local/src
tar zxvf tiff-4.0.7.tar.gz
cd tiff-4.0.7
./configure --prefix=/usr/local/tiff --enable-shared
make
make install
5、安装libpng
cd /usr/local/src
tar zxvf libpng-1.6.28.tar.gz
cd libpng-1.6.28
./configure --prefix=/usr/local/libpng --enable-shared
make
make install
6、安装freetype
cd /usr/local/src
tar zxvf freetype-2.7.1.tar.gz
cd freetype-2.7.1
./configure --prefix=/usr/local/freetype --enable-shared
make
make install
7、安装jpeg
cd /usr/local/src
tar zxvf jpegsrc.v9b.tar.gz
cd jpeg-9b
./configure --prefix=/usr/local/jpeg --enable-shared
make
make install
8、安装libgd
cd /usr/local/src
tar zxvf libgd-2.1.1.tar.gz
cd libgd-2.1.1
./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/lib64 --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
make
make install
说明:如果libgd编译失败,可以先跳过,直接使用系统默认的2.1.0版本,在编译php的时候把参数--with-gd=/usr/local/libgd修改为--with-gd即可。
9、安装t1lib
cd /usr/local/src
tar zxvf t1lib-5.1.2.tar.gz
cd t1lib-5.1.2
./configure --prefix=/usr/local/t1lib --enable-shared
make without_doc
make install
10、安装php
注意:如果系统是64位,请执行以下两条命令,否则安装php会出错。
\cp -frp /usr/lib64/libltdl.so* /usr/lib/
\cp -frp /usr/lib64/libXpm.so* /usr/lib/
cd /usr/local/src
tar -zvxf php-7.1.2.tar.gz
cd php-7.1.2
export LD_LIBRARY_PATH=/usr/local/libgd/lib
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype --enable-mysqlnd
make #编译
make install #安装
说明:如果提示libgd版本错误,把php编译参数--with-gd=/usr/local/libgd修改为--with-gd即可。
cp php.ini-production /usr/local/php/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php/etc/php.ini /etc/php.ini #添加软链接到 /etc目录
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录
vi /usr/local/php/etc/php-fpm.conf #编辑
pid = run/php-fpm.pid #取消前面的分号
:wq! #保存退出
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
vi /usr/local/php/etc/php-fpm.d/www.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
设置 php-fpm开机启动
cp /usr/local/src/php-7.1.2/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
chkconfig php-fpm on #设置开机启动
vi /usr/local/php/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1 #php支持opcode缓存
修改为:opcache.enable_cli=0
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出
配置nginx支持php
vi /usr/local/nginx/conf/nginx.conf
修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改
user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
index index.html index.htm index.php; #添加index.php
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消FastCGI server部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
/etc/init.d/nginx restart #重启nginx
service php-fpm start #启动php-fpm
测试篇
cd /usr/local/nginx/html/ #进入nginx默认网站根目录
rm -rf /usr/local/nginx/html/* #删除默认测试页
vi index.php #新建index.php文件
<?php
phpinfo();
?>
:wq! #保存退出
chown www.www /usr/local/nginx/html/ -R #设置目录所有者
chmod 700 /usr/local/nginx/html/ -R #设置目录权限
在浏览器中打开服务器IP地址,会看到下面的界面
至此,CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2教程完成。
今天关于CentOS 7.3和1611编译安装PHP7的讲解已经结束,谢谢您的阅读,如果想了解更多关于CentOS 7 编译安装PHP7、CentOS 7.1编译安装PHP7、CentOS 7.3.1611 编译安装 Nginx1.10.3+MySQL5.7.16+PHP7.1.2、CentOS 7.3.1611编译安装Nginx1.10.3+MySQL5.7.16+PHP7.1.2的相关知识,请在本站搜索。
本文标签: