在CentOS 6下快速搭建LAMP/LNMP环境


=Start=

缘由:

在做测试的时候需要各种环境,其中LAMP和LNMP最为常见,在此记录一下在CentOS 6上快速搭建的步骤,方便以后参考。

正文:

参考解答:
LAMP
# 对于LAMP来说可选,对于LNMP来说会需要用到
sudo yum install epel-release
# 先安装PHP
sudo yum install php php-mysql
# 再安装Apache并启动
sudo yum install httpd
sudo service httpd start
# 然后安装MySQL并进行一些安全设置
sudo yum install mysql-server
sudo service mysqld start
sudo /usr/bin/mysql_secure_installation
# 编辑一个简单的PHP文件进行测试
sudo vim /var/www/html/info.php
    <?php
        phpinfo();
    ?>

&

LNMP

# 因为Nginx对于CentOS来说并不是直接可用的,所以需要先装一些依赖
sudo yum install epel-release
# 安装PHP和php-fpm(因为Nginx不能解析PHP脚本,需要将其交由php-fpm进行解释)
sudo yum install php php-fpm php-mysql
# 安装Nginx(也可以手工编译安装,不过需要设置的地方有点多,这里为了方便起见,直接用yum进行安装)
sudo yum install nginx
# 安装MySQL并进行一些安全设置
sudo yum install mysql-server
sudo service mysqld start
sudo /usr/bin/mysql_secure_installation
# 修改PHP的配置文件(其它的地方可以按需修改,这里只说一些比较重要的)
sudo vim /etc/php.ini
    cgi.fix_pathinfo=0
# 编辑Nginx的配置文件(修改root地址,将PHP脚本交由FastCGI服务器进行解析)
sudo vim /etc/nginx/nginx.conf
    ...
sudo service nginx start
# 修改php-fpm的配置文件(主要是改用户和组,默认是apache,这里将其改成nginx)
sudo vim /etc/php-fpm.d/www.conf
    user = nginx
    group = nginx
sudo service php-fpm restart
# 编辑一个简单的PHP文件进行测试
sudo vim /usr/share/nginx/html/info.php
<?php
    phpinfo();
?>
参考链接:

=END=

, ,

《 “在CentOS 6下快速搭建LAMP/LNMP环境” 》 有 7 条评论

  1. 如何快速定位LAMP/LNMP中包含的各软件的配置文件的位置
    `
    # httpd -V #查看Apache的版本和编译选项等信息
    #
    # nginx -t #测试Nginx配置文件的正确性
    #
    # mysqld –help –verbose | grep “Default options” -A 1 #MySQL配置文件的读取顺序
    # find / -type f -iname “my.cnf” | xargs ls -lt #查找MySQL的配置文件
    #
    # php –ini #查看PHP的配置文件列表
    #
    # find / -type f -iname “php-fpm.conf” | xargs ls -lt #查找php-fpm的配置文件
    `

  2. 搞不清FastCgi与PHP-fpm之间是个什么样的关系
    https://segmentfault.com/q/1010000000256516
    `
    首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。即,CGI是个协议,跟语言/进程什么的没关系。

    那FastCGI又是什么呢?FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。即,FastCGI是CGI的升级版,一种语言无关的协议。

    php-cgi只是解释PHP脚本的程序而已。

    什么又是PHP-FPM?PHP-FPM是针对于PHP的,FastCGI的一种实现,它负责管理一个进程池,来处理来自Web服务器的请求。目前,PHP-FPM是内置于PHP的。
    `
    什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
    http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/

  3. 如何重启 php-fpm ?
    https://serverfault.com/questions/189940/how-do-you-restart-php-fpm
    `
    # rpm -qa | grep fpm
    # rpm -ql php71-php-fpm
    # systemctl status php71-php-fpm

    # vim /etc/opt/remi/php71/php-fpm.d/www.conf
    # vim /usr/lib/systemd/system/php71-php-fpm.service

    # systemctl restart php71-php-fpm
    `

    https://www.hostinger.com/tutorials/how-to-install-lemp-centos7
    https://github.com/owncloud/core/issues/14187
    https://stackoverflow.com/questions/40059745/nginx-connect-to-unix-var-run-php7-0-fpm-sock-failed-2-no-such-file-or-dir
    https://serverfault.com/questions/598024/nginx-failed-to-connect-to-php-fpm-socket

    https://serverfault.com/questions/128800/nginx-php-fpm-random-502-bad-gateway
    `
    使用 php-fpm.sock 而不是 127.0.0.1:9000 的原因:
    Unix sockets are ~20% faster
    You don’t use time-wait sockets for each connect
    `

  4. 如何快速判断配置文件的路径
    https://huoding.com/2017/07/26/626
    `
    # 使用 strace 命令监控打开文件中和配置相关的操作来侧面实现获取配置文件路径的目的
    $ strace -eopen pip 2>&1 | grep pip.conf
    $ strace -eopen /usr/local/nginx/sbin/nginx 2>&1 | grep conf
    `

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注