PHP环境部署-源码

【检查nginx和mysql是否启动】

[root@web02 ~]# netstat -tlunp|egrep '(3306|80)'

tcp    0  0 0.0.0.0:80    0.0.0.0:*    LISTEN      9767/nginx: master 

tcp6  0  0 :::3306        :::*        LISTEN      3912/mysqld

【安装PHP依赖包】

yum -y install zlib-devel libxml2-devel bzip2-devel libmcrypt libmcrypt-devel mcrypt mhash mhash-devel \

libjpeg-turbo-devel gd-devel libcurl-devel libxslt-devel curl-devel libjpeg-devel libpng libpng-devel \

freetype freetype-devel

【缺少一个包-这个不是必须安装的包】

libiconv-devel这个包默认yum没有

[root@web02 ~]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz

###进入到解压后的目录编译安装一下

./configure --prefix=/application/libiconv&&make&&make install

【安装PHP】

###目前只有sohu有PHP安装包

http://mirrors.sohu.com/php/

###版本的选择

看开发用什么版本开发的,你就用什么版本的软件,这里我们用7.3

wget http://mirrors.sohu.com/php/php-7.3.5.tar.gz

tar xzvf php-7.3.5.tar.gz

【编译安装】

./configure \

--prefix=/application/php-7.3.5 \

--enable-mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-iconv-dir=/application/libiconv \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--disable-rpath \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--enable-mbregex \

--enable-fpm \

--enable-mbstring \

--with-gd \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-soap \

--enable-short-tags \

--enable-static \

--with-xsl \

--with-fpm-user=www \

--with-fpm-group=www \

--enable-ftp \

--enable-opcache=no

###查看是否编译成功

[root@web02 /server/tools/php-7.3.5]# echo $?

0

###继续

make&&make install

###以下结果就没问题了

Wrote PEAR system config file at: /application/php-7.3/etc/pear.conf

You may want to add: /application/php-7.3/lib/php to your php.ini include_path

/server/tools/php-7.3.5/build/shtool install -c ext/phar/phar.phar /application/php-7.3/bin

ln -s -f phar.phar /application/php-7.3/bin/phar

Installing PDO headers:          /application/php-7.3/include/php/ext/pdo/

【编辑配置文件php.ini】

[root@web02 ~]# ls /server/tools/php-7.3.5/*ini*

php.ini-development  php.ini-production

  实验环境              生产环境

区别就是生产环境基本错误的debug都打开了,而生产环境都关闭错误提示了

这里我们学习用实验环境配置文件

###复制配置文件到真实目录

[root@web02 ~]# cp /server/tools/php-7.3.5/php.ini-development /application/php/lib/php.ini

【配置PHP的fpm】

###进入软件真实目录

[root@web02 /application/php]# cd /application/php/etc/

###复制一份配置文件,改掉后缀

[root@web02 /application/php/etc]# cp php-fpm.conf.default php-fpm.conf

[root@web02 /application/php/etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf

###查看

[root@web02 /application/php/etc]# ls

php-fpm.conf  php-fpm.conf.default  php-fpm.d

[root@web02 /application/php/etc]# ls php-fpm.d/

www.conf  www.conf.default

【启动PHP服务】

[root@web02 /application]# /application/php-7.3.5/sbin/php-fpm

[27-Dec-2020 17:20:23] ERROR: failed to open configuration file

'/application/php-7.3/etc/php-fpm.conf': No such file or directory (2)

###这个错误估计是我编译的时候路径给错了,临时解决办法,你不是非要用php-7.3这个路径吗?

[root@web02 /application]# ln -s php-7.3.5/ php-7.3 <==直接给你做个软连接即可解决

再次

[root@web02 /application]# /application/php-7.3.5/sbin/php-fpm

###查看服务

[root@web02 /application]# netstat -tlunp|grep php

tcp  0  0 127.0.0.1:9000      0.0.0.0:*    LISTEN  1820/php-fpm: maste

【配置nginx.conf】

【测试查看php配置信息】

[root@web02 /application/nginx]# cat conf/extra/luoqi1.conf

server {

        listen      80;

        server_name  www.luoqi1.com;

location ~* \.php$ {

            root          /application/nginx/html/luoqi1/;

            fastcgi_pass  127.0.0.1:9000;

            include        fastcgi.conf;

  }

}

[root@web02 /application/nginx]# cat html/luoqi1/luoqi1_info.php

<?php phpinfo(); ?>

【测试查看myqsl配置信息】

server {

        listen      80;

        server_name  www.luoqi2.com;

        location ~* \.php$ {

            root          /application/nginx/html/luoqi2/;

            fastcgi_pass  127.0.0.1:9000;

            include        fastcgi.conf;

                  }

}

[root@web02 /application/nginx]# cat html/luoqi2/luoqi2_mysql.php

<?php

//$link_id=mysqli_connect('主机名','用户','密码');

$link_id=mysqli_connect('localhost','root','302331') or mysql_error();

if($link_id){

echo "mysql successful by luoqi.\n";

}

else{

echo mysql_error();

}

?>

【windows中hosts文件配置】

10.0.0.8 www.luoqi1.com www.luoqi2.com

【浏览器访问】

www.luoqi1.com/luoqi1_info.php  《==查看上面配置的php信息

www.luqoi2.com/luoqi2_mysql.php 《==查看mysql配置是否正确

【用linux测试-linux上的php命令】

###这不可以不做,因为php直接解析网页源文件,不解析网址

[root@web02 /application/nginx]# vim /etc/hosts

10.0.0.8 www.luoqi1.com www.luoqi2.com

###不能用curl命令,卡死,curl不支持解析php

[root@web02 /application/nginx]# curl http://www.luoqi2.com/luoqi2_mysql.php

###需要用php命令,注意是对php源文件解析,而不是通过访问网站解析

[root@web02 /application/nginx]# /application/php-7.3/bin/php \

/application/nginx/html/luoqi2/luoqi2_mysql.php

mysql successful by luoqi.  <==提示这个就对了

--------------到此LNMP全部成功-------------------------------------------------------

【LNMP详细部署博文】

https://blog.csdn.net/nimo97/article/details/80536034

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容