LNMP分离部署

喜夏-厌秋 提交于 2020-03-25 04:59:40

 (PHP)开始安装php

执行下面命令安装相关的lib软件包

yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel

yum -y install freetype-devel 0libpng-devel gd libcurl-devel libxslt-devel

 

安装yum无法安装的libiconv

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

 

 

这四个包直接有依赖   轮流装一遍进行

 

 

没有时可以下载

yum -y install libmcrypt-devel

 

yum -y install mhash

 

yum -y install mcrypt

 

 

没有PHP包时用公网源安装:

wget http://cn2.php.net/get/php-5.3.28.tar.gz/from/this/mirror

 

 

 

--prefix=/usr/local/php5.3.28 \

--with-mysql=/usr/local/mysql \    这里需要改为--with-mysql=mysqlnd \   是因为5.3以后安装PHP就不需要先安装MySQL了     用它自己内置的MySQL环境

--with-iconv-dir=/usr/local/libiconv \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \--enable-xml \

--disable-rpath \

--enable-safe-mode \

--enable-bcmath \

--enable-shmop \

--enable-sysvsem \

--enable-inline-optimization \

--with-curl \

--with-curlwrappers \

--enable-mbregex \

--enable-fpm \

--enable-mbstring \

--with-mcrypt \

--with-gd \

--enable-gd-native-ttf \

--with-openssl \

--with-mhash \

--enable-pcntl \

--enable-sockets \

--with-xmlrpc \

--enable-zip \

--enable-soap \

--enable-short-tags \

--enable-zend-multibyte \

--enable-static \

--with-xsl \

--with-fpm-user=www \

--with-fpm-group=www \

--enable-ftp

#特别强调:上述每行结尾的换行符反斜线(\)之后不能再有任何字符包括空格

 

如果出错就看它报错的内容     -devel是把跟它有关的所有包装上

openssl     看这个包安装了没这是开启远程ssh访问

 

 

安装完成后直接编译   不需要在做本地的连接了

make   &&  make  install

#make最后的正确提示

Build complete

Don't forget to run 'make test'.

 

开始设置软链接以方便访问,命令如下:

[root@localhost ~]# ln -s /usr/local/php5.3.28/ /usr/local/php

[root@localhost ~]# ls -l /usr/local/php

lrwxrwxrwx. 1 root root 21 Jul 14 13:06 /usr/local/php -> /usr/local/php5.3.28/

(2)查看PHP配置默认模版文件,命令如下:

[root@localhost ~]# cd /usr/src/php-5.3.28/

[root@localhost php-5.3.28]# ls php.ini*

php.ini-development  php.ini-production

(3)拷贝PHP配置文件到PHP默认目录,并更改文件名称为php.ini,命令如下:

[root@localhost php-5.3.28]# cp php.ini-production /usr/local/php/lib/php.ini

[root@localhost php-5.3.28]# ls -l /usr/local/php/lib/php.ini

-rw-r--r--. 1 root root 69627 Jul 14 13:25 /usr/local/php/lib/php.ini

配置PHPFastCGI方式)的配置文件php-fpm.conf

 [root@localhost php-5.3.28]# cd /usr/local/php/etc/

[root@localhost etc]# ls

pear.conf  php-fpm.conf.default

[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf

修改它的配置文件   php-fpm.conf   修改他的一个监听端口

 

修改成本地的IP地址让可以远程访问

 

启动PHP服务(FastCGI方式)

(1)启动PHP服务php-fpm,命令如下:

[root@localhost etc]# /usr/local/php/sbin/php-fpm

(2)检查PHP服务php-fpm的进程及启动端口的情况,命令如下:几种方式都可以

 

[root@localhost etc]# ps -ef | grep php-fpm

[root@localhost etc]# lsof -i:9000  #默认9000端口提供服务

 

配置Nginx支持PHP程序请求访问

nginx)修改Nginx配置文件

(1)查看nginx当前的配置,命令如下:

[root@localhost etc]# cd /usr/local/nginx/conf/

[root@localhost conf]# cp nginx.conf nginx.conf.02

[root@localhost conf]# vim nginx.conf

在添加一个location

 

改为自己本地的IP地址

 

检查并启动Nginx

可通过如下命令检查Nginx配置文件的语法:

[root@localhost conf]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx-1.10.2//conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx-1.10.2//conf/nginx.conf test is successful

[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload

此步在生产环境很关键,如不提前检查语法,重启后发现语法错误会导致Nginx无法提供服务,,给用户访问体验带来不好的影响。

看看有没有在windows上映射     路径如下   改为本机的IP地址

 

 

 

有一个访问PHP网页报错的问题      特殊的403

 

Php服务没有创建www目录   需要创建

Mkdir -p /www

看看有没有创建www账户

需要修改它的属主和属组为www账户的来让www账户能访问执行

Chown -R www.www /www

在创建一个index.PHP文件,就能访问了

 

Nginx特殊的403是你想看的内容本地没有,nginx内部的安全机制为了防止你看到它的所以文件就给你拒绝了

问题原因:

  1. 1.    你要是让他自己来跳转就会出现权限拒绝
  2. 2.    必须在本地有这个文件就不会出现403
  3. 3.    是因为它跳转前先要看自己本地有没有这个文件,才会跳转的,本地有了,就是空的也会跳转
  4. 4.    这就是为什么静态本地要挂存储,PHP也要挂存储俩个需要一致
  5. 5.    存储服务器NFS不是挂在网页目录,是在网页目录的子目录下的类似下图的目录下,网页文件是在网页目录下的

 

  1. 6.     网页文件不需要挂存储

 

phpPHP访问MySQL

PHP连接MySQL的情况进行测试

编辑test_mysql.php,加入如下内容:

[root@localhost blogcom]# cat test_mysql.php

<?php

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

    $link_id=mysql_connect('localhost','root','123123');

    if($link_id){

        echo "mysql successful by Mr.chen !";

    }else{

        echo mysql_error();

    }

?>

通过脚本来执行

 

 

(MySQL)

因为设置过只能在本地登陆  所以需要修改一下MySQL的登陆账号权限限制

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!