LNMP分离部署
(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
配置PHP(FastCGI方式)的配置文件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. 你要是让他自己来跳转就会出现权限拒绝
- 2. 必须在本地有这个文件就不会出现403
- 3. 是因为它跳转前先要看自己本地有没有这个文件,才会跳转的,本地有了,就是空的也会跳转
- 4. 这就是为什么静态本地要挂存储,PHP也要挂存储俩个需要一致
- 5. 存储服务器NFS不是挂在网页目录,是在网页目录的子目录下的类似下图的目录下,网页文件是在网页目录下的
- 6. 网页文件不需要挂存储
(php)PHP访问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的登陆账号权限限制