标签存档: php-fpm

centos7安装nginx+mariadb+php-fpm

用CentOS-7.0-1406-x86_64-Minimal.iso最小化安装一个centos7,安装选项:英文、时区为上海、启用网络(如果不在安装时设置,需要安装完成后修改/etc/sysconfig/network-scripts/ifcfg-enp12s0文件中的ONBOOT选项为yes)。安装完成后,先升级一下整个系统:

yum update

重启:

reboot

删除旧内核:

yum remove kernel

安装一些基本工具(不建议安装net-tools来使用ifconfig命令,试试ip命令!):

yum install wget unzip unrar

做完以上工作后,下面是具体安装nginx+mariadb+php-fpm的过程:
1、添加nginx官方源:

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、安装lnmp基本环境(如需要其他php组件,另行安装):

yum install nginx php-fpm php-gd php-mysql mariadb-server

3、设置mariadb的root密码:

systemctl start mariadb
mysqladmin -u root password "密码"

4、创建php的session目录及设置权限

mkdir /var/lib/php/session
chmod 777 /var/lib/php/session -R

5、修改nginx配置
添加php默认文件:

location / {
root   /usr/share/nginx/html;
index  index.php index.html index.htm;
}

修改以下代码,添加php支持:

# location ~ .php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
#    include        fastcgi_params;
#}

删除上面所有的#和蓝色字体部分。
6、防火墙中打开http服务

由于centos7默认使用的是firewalld防火墙,不再是iptables,许多人不习惯,把默认的卸载,重新安装了iptables,不建议这样做,firewalld功能更强大,使用也简单。防火墙中把http服务放行设置如下(配置文件:/etc/firewalld/zones/public.xml):

firewall-cmd --permanent --zone=public --add-service=http
systemctl reload firewalld

7、启动lnmp环境及设置开机启动

systemctl start nginx
systemctl start php-fpm
systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb

完成!写个phpinfo测试一下就可以了。

php-fpm无法启动一例及原因分析

今天把学校局域网里的gentoo服务器升级了一下,稳定版的gentoo终于把php5.3升级到了php5.4。重启php,结果发现php无法启动了,提示:

 * Caching service dependencies ...                                                       [ ok ]
 * Starting PHP FastCGI Process Manager ...
 * start-stop-daemon: /usr/lib//bin/php-fpm does not exist                                [ !! ]
 * ERROR: php-fpm failed to start

用whereis php-fpm命令查看,发现有文件:/usr/bin/php-fpm。

于是编辑/etc/init.d/php-fpm文件,把/usr/lib/${PHPSLOT}/bin/php-fpm改为/usr/lib/${PHPSLOT}/bin/php-fpm,结果还是无法启动。

后来想到此文件是否是链接呢?于是ls -l /usr/bin/php-fpm,发现此文件是链接到了/usr/lib/php5.4/bin/php-fpm,再打开/etc/init.d/php-fpm,终于明白是变量出问题了:

[ ${PHPSLOT} = 'php-fpm' ] && PHPSLOT="$(eselect php show fpm)"

在终端运行eselect php show fpm命令,无任何输出,原因不明。在我的笔记本上测试,则输出:php5.4。没办法,只好将上面手动改成:

[ ${PHPSLOT} = 'php-fpm' ] && PHPSLOT="php5.4"

重新启动php-fpm成功。

先记录一下,回头还得找找原因,为什么eselect php show fpm会无法输出。

archlinux中安装nginx+mysql+php

在新装的archlinux中安装了LNMP环境,记录一下:

1、安装软件:

pacman -S nginx mysql php-fpm php-gd

2、配置nginx:

vi /etc/nginx/nginx.conf

3、作为服务启动(systemd环境):

systemctl enable nginx.service

systemctl enable mysqld.service

systemctl enable php-fpm.service

先简单记一下,回头再细化。

The page you are looking for is temporarily unavailable.Please try again later.

nginx+php-fpm出现如下错误:

The page you are looking for is temporarily unavailable.Please try again later.

网上有多种解决方法,试了许多不管事,后来想到可能是在nginx中设置了limit_conn的原因,搜索一下,看到这篇文章有了思路,nginx.conf中设置如下,问题解决。

limit_zone one $binary_remote_addr 10m;
limit_conn one 10;

centos6安装nginx+mysql+php-fpm[2013/12/1更新]

最新:在centos6.5中测试通过。

昨天在虚拟机中安装了一个centos6+nginx+mysql+php-fpm环境,记录了一下安装过程。centos6建议以netinstall方式安装,安装一个最小化的server,配置好网站环境后,虚拟机中的大小为700M左右。下面是安装配置nginx+mysql+php-fpm过程:

1、加源,更新:

# rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# yum update

2、安装nginx+mysql+php-fpm:

# yum install nginx php-fpm mysql-server php-mysql php-mbstring php-gd php-pear -y

3、设置mysql密码及mysql、nginx、php-fpm开机启动:

# service mysqld start
# mysqladmin -u root password '密码'
# chkconfig nginx on
# chkconfig mysqld on
# chkconfig php-fpm on

注:默认安装启动php-fpm时,出现如下错误:

正在启动 php-fpm:[28-Nov-2011 08:11:01] ERROR: [pool www] cannot get uid for user 'apache'

解决办法:

# vi /etc/php-fpm.d/www.conf

找到以下两行:

user = apache
group = apache

将其中的apache都改为nginx。

4、开启80端口(默认是关闭的):

# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# service iptables save
# service iptables restart

5、修改nginx配置文件,启动nginx和php-fpm:

# vi /etc/nginx/conf.d/default.conf

添加php默认文件:

location / {
root   /usr/share/nginx/html;
index  index.php index.html index.htm;
}

修改以下代码,添加php支持:

# location ~ .php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
#    include        fastcgi_params;
#}

删除上面所有的#和蓝色字体部分。启动nginx和php-fpm:

# service nginx start
# service php-fpm start

6、用filezilla上传网站至/usr/share/nginx/html。

gentoo里的php升级到了5.4

笔记本上安装的是~x86的gentoo,原来是php5.3+nginx,上周emerge了一下,发现php升级到了5.4.0_rc1,php无法启动php-fpm了,网上查了一下,发现php-fpm已经包含在了php的内核中了。后来重新emerge了php之后,发现有如下提示:

* IMPORTANT: config file '/etc/init.d/php-fpm' needs updating.

于是运行etc-update替换了旧的php配置文件之后,一切正常。

另外,在php的use中去掉了fastcgi。