php
php-fpm:提供了更好地php进程管理方式,可以有效控制内存和进程
。
1)解压:tar jxf php-5.6.35.tar.bz2 ##会报错
yum -y install bzip2
##重新解压
tar jxf php-5.6.35.tar.bz2
2)进入解压后的目录,开始编译
cd /root/lnmp/php-5.6.35
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash
##出现此报错:
configure: error: in `/root/lnmp/php-5.6.35':
configure: error: no acceptable C compiler found in $PATH
##依次解决依赖性
安装:yum install gcc gcc-c++ ncurses-devel -y
详解:
--with-config-file-path=/etc 指定php.ini位置
--with-MySQL=mysql安装目录,对mysql的支持
--with-MySQLi=mysqli文件目录,优化支持
--enable-fpm
PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,它其实是PHP源代码的一个补丁,旨在将Fast-CGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。新版的PHP已经集成了php-fpm,在./configure的时候带 –enable-fpm参数即可开启PHP-FPM
#以上为php需要编译的模块,把刚才编译mysql的参数要加进来,添加mysqlnd(这是mysql的驱动,php开发的)
--with-freetype-dir 打开对freetype字体库的支持
--with-zlib 打开zlib库支
!!!!!!!!注意:在每次编译的时候,看报错的内容,报错需要什么就安装什么
每次将需要的软件安装好以后,重新编译,再次看报错的内容
yum install libxml2-devel libcurl-devel -y
yum install openssl openssl-devel -y
yum whatprovides */jpeglib.h ##寻找jpeglib.h文件
yum install libjpeg-turbo-devel-1.2.90-5.el7.x86_64 -y
yum install libpng-devel-1.5.13-7.el7_2.x86_64 -y
yum install freetype-devel-2.4.11-12.el7.x86_64 -y
yum install gmp-devel-6.0.0-12.el7_1.x86_64 -y
出现此报错:
安装:
##编译报错,逐步解决依赖性(rhel7可以向下兼容6的包)
cd /root/lnmp ---> ls
yum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm re2c-0.13.5-1.el6.x86_64.rpm ##(系统镜像没有的3个包) libmcrypt-2.5.8-9.el6.x86_64.rpm -y
yum install net-snmp net-snmp-devel -y
##最后重新编译,编译成功
4)make && make install ##时间较长,等待
5)编译时添加了--with-fpm-user=nginx --with-fpm-group=nginx 参数
所以添加 nginx 用户
useradd nginx
6)拷贝更改配置文件
cd /usr/local/lnmp/php/etc ---> ls
cp php-fpm.conf.default php-fpm.conf
##查看配置文件中以下几项是否开启:
vim php-fpm.conf
149:user = nginx
150:group = nginx
25:pid = run/php-fpm.pid ##取消注释
vim php-fpm.conf
7)拷贝更改php主配置文件
cd /root/lnmp/php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
vim /usr/local/lnmp/php/etc/php.ini
936:date.timezone = Asia/Shanghai ##修改时区
vim /usr/local/lnmp/php/etc/php.ini
8)拷贝php启动脚本至/etc/init.d/
cd /root/lnmp/php-5.6.35/sapi/fpm ---> ls
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm ##添加执行权限
9)启动php:/etc/init.d/php-fpm start
netstat -antlp ##查看端口9000
nginx
1)解压nginx:tar zxf nginx-1.14.0.tar.gz
2)进入nginx解压包:
cd nginx-1.14.0
vim src/core/nginx.h
修改:#define NGINX_VER "nginx/"(将此行末尾显示nginx版本号的配置删除)
vim auto/cc/gcc
修改:
# debug
#CFLAGS="$CFLAGS -g" (将这2行注释调,关闭debug)
3)编译安装nginx:
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx
根据提示解决依赖性 ##此处应该还需要安装pcre-devel
4)make && make install
5)修改nginx配置文件,开启php模块
vim /usr/local/lnmp/nginx/conf/nginx.conf
45 index index.php index.html index.htm; (添加php页面)
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 include fastcgi.conf;
71 }
6)将nginx启动脚本链接到/usr/local/sbin/
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
nginx -t ##检测语法
nginx ##开启nginx
nginx -s reload ##重载
7)尝试访问:http://172.25.78.1 ##是nginx默认页面
在nginx默认发布目录添加 index.php
vim /usr/local/lnmp/nginx/html/index.php
<?php
phpinfo()
?>
#可以看到php的默认页面
8)启动nginx并访问:http://172.25.0.1
nginx安装配置完成
vim /usr/local/lnmp/nginx/html/index.php
Discuz论坛搭建
1)解压 Discuz_X3.2_SC_UTF8.zip
yum install -y unzip ##安装解压命令
cd /root/lnmp
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
2)将解压后的upload目录改名为bbs,便于访问
cd /usr/local/lnmp/nginx/html/ ---> ls
mv upload bbs
3)浏览器访问:http://172.25.78.1/bbs
4)点击同意后会出现很多目录不存在和不可写的报错
##解决##
cd /usr/local/lnmp/nginx/html/bbs
chmod 777 config/ -R
chmod 777 data/ -R
chmod 777 uc_server/ uc_client/ -R
给以上目录增加权限,再刷新就可以了
5)选择全新安装--->填写数据库名(任意) 数据库用户名:root 数据库密码:自己设定的数据库root用户密码
管理员帐号:admin 密码:redhat
6)下面会报数据库连接错误:No such file or directory
##解决##
编辑php主配置文件:
vim /usr/local/lnmp/php/etc/php.ini
pdo_mysql.default_socket= /usr/local/lnmp/mysql/data/mysql.sock
mysql.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
mysqli.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
以上路径为mysql安装的目录,根据自己的路径填写
重新加载php
/etc/init.d/php-fpm reload
7)再次刷新页面,还是报错:Permission denied
##解决##
由于 nginx用户 对于 /usr/local/lnmp/mysql/data 目录没有权限
所以:chmod 755 data/
再次刷新,成功安装
8)点击页面中“管理中心”,会出现报错:Please delete install/index.php via FTP!
##解决##
[root@server5 bbs]# pwd
/usr/local/lnmp/nginx/html/bbs/install
[root@server5 install]# rm -fr index.php
再刷新页面,成功
'如果把nginx配置文件中php模块注释掉,再刷新页面,会让你下载,这就是打开php模块的原因'