【笔记】lnmp(Linux+nginx+MySQL+PHP)环境配置

Linux tytrock ⋅ 于 2018-08-08 18:19:39 ⋅ 2460 阅读

1、安装编绎安装需要的依赖

yum install gcc gcc-c++ autoconf automake  ncurses-devel openssl-devel


2、安装Mysql

1) rz 上传 sz PATH

yum install lrzsz -y

2)安装cmake

cd /usr/local/src
wget http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz
tar zxvf cmake-3.0.2.tar.gz
cd cmake-3.0.2
./configure
make
make install

3)添加mysql组

groupadd mysql

##创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
useradd -g mysql mysql -s /bin/false

4)安装Mysql

#创建MySQL数据库存放目录
mkdir -p /data/mysql

#设置MySQL数据库存放目录权限
chown -R mysql:mysql /data/mysql

#创建MySQL安装目录
mkdir -p /usr/local/mysql
cd /usr/local/src 

#下载mysql
wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.21.tar.gz
 
#解压
tar zxvf mysql-5.6.21.tar.gz

#进入目录
cd mysql-5.6.21

#配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc

#编译
make
make install

4)配置

#删除系统默认的配置文件(如果默认没有就不用删除)
rm -rf /etc/my.cnf

#进入MySQL安装目录
cd /usr/local/mysql

#生成mysql系统数据库
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

#添加到/etc目录的软连接
ln -s /usr/local/mysql/my.cnf /etc/my.cnf

#把Mysql加入系统启动
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

#增加执行权限
chmod 755 /etc/init.d/mysqld

#加入开机启动
chkconfig mysqld on

#编辑
vi /etc/rc.d/init.d/mysqld

#键入“i”进入编辑模式,修改以下两个路径
basedir=/usr/local/mysql #MySQL程序安装路径
datadir=/data/mysql #MySQl数据库存放目录

#修改好按Esc退出编辑模式,输入以下字符回车保存退出
:wq

#启动
service mysqld start


3、安装nginx

1)仓库

#为了可以使用 CentOS 系统的包管理工具去安装更多的东西,我们需要单独安装一些额外的软件仓库。
#EPEL
sudo yum install epel-release -y
#IUS,IUS 仓库里面有我们需要的一些新的软件包,比如 PHP 7。注意我们安装的是为 CentOS  7 这个系统准备的 IUS 仓库,如果你的系统是 CentOS 6,你需要到 IUS 网站上去查找适合的仓库的下载地址
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm -y

2)安装nginx

#NGINX 这个软件包已经包装在 EPEL 仓库里了,之前我们已经安装了这个仓库,所以可以直接使用包管理工具去安装 NGINX。
sudo yum install nginx -y

#启动
sudo systemctl start nginx

#开启自启动
sudo systemctl enable nginx

服务启动以后,你就可以在浏览器上使用服务器的 IP 地址,或者指向这个地址的域名访问服务器指定的目录了。你会看到一下界面。

微信截图_20180908100306.png


3)配置 nginx 虚拟主机

安装完 nginx 以后,第一件想到的事应该就是去创建虚拟主机,虚拟主机允许我们在同一台服务器上运行多个网站,我们可以为不同的域名绑定不同的目录,访问这个域名的时候,会打开对应目录里面的东西。之前介绍过为 Apache 服务器创建虚拟主机,下面来看一下为 nginx 配置虚拟主机。先进入到 nginx 配置文件目录:

cd /etc/nginx/conf.d

创建一个新的配置文件,比如我要为 tytrock.com 这个主机名创建一个虚拟主机,可以这样:

vim tytrock.conf

编辑配置文件,把下面的配置代码放到这个配置文件里(root为站点根目录路径,按实际填写):

server {
	listen       80;
        server_name    tytrock.com;
        root         /usr/site/tytrock;
	index         index.php index.html;


        location / {
	try_files $uri $uri/ /index.php?$query_string;
        }

	location ~ \.php$ {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}

}

上面这个配置文件支持一些的 PHP 应用,比如 WordPress,Drupal,Laravel。第一个 location 区块可以让 PHP 应用支持地址的重写功能,第二个 Location 设置了让虚拟主机可以去处理 PHP 的请求。注意这里用了 include 命令,包含进来一个 fastcgi.conf 文件,你要确定这个文件存在。

你也可能会找到 fastcgi_params 这个文件,如果没有 fastcgi.conf 就把 fastcgi_params 这个文件包含进来,并且在处理 php 的那个 location 区块里再添加一条配置:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        erver_name 就是主机名,也就是跟这个虚拟主机绑定在一块儿的域名,我事先把 nginx.ninghao.net 指向了服务器,这个虚拟主机就是为它准备的,所以,server_name 后面的东西就是 nginx.ninghao.net 。紧接着 server_name 下面可以是一个 root,就是这个虚拟主机的根目录,也就是网站所在的目录。比如我们要把 nginx.ninghao.net 这个网站的文件放在 /home/www/nginx.ninghao.net 下面,那么这个 root 就是这个路径。

        然后去掉 location / 里面的 root 这行代码。再在 index 后面加上一种索引文件名,也就是默认打开的文件,这里要加上一个 index.php ,这样访问 nginx.ninghao.net 就可以直接打开 root 目录下面的 index.php 了。稍后我们再去安装 php 。

        保存一下,按 esc ,输入 :wp(保存并退出)。现在虚拟主机应该就可以使用了。主机的域名是 nginx.ninghao.net,访问它的时候,打开的是 /home/www/nginx.ninghao.net 这个目录里面的东西,你可以在这个目录下放点东西。

        重启 nginx 或者重新加载 nginx 可以让配置文件生效。

systemctl reload nginx


4、安装PHP

php5.6版本

#安装
sudo yum install php56u-fpm -y

#启动
sudo systemctl start php-fpm

#开机自动启动
sudo systemctl enable php-fpm

#安装 PHP 扩展:为了可以正常运行一般的 PHP 应用,你需要再安装一些其它的 PHP 扩展,通常你在安装 PHP 应用,比如 WordPress,Drupal,Laravel 的时候,都会提示你缺少的 PHP 扩展。下面是一些常用的 PHP 扩展:
sudo yum install php56u-gd  php56u-mysqlnd php56u-pdo php56u-mcrypt php56u-mbstring php56u-json php56u-opcache php56u-xml -y

#重新加载 PHP-FPM
sudo systemctl reload php-fpm

有些情况安装后输入php会出现 command not found的情况,可能是因为没有安装php-cli模式,参考文章:https://www.ytyzx.org/index.php?title=%E5%9C%A8CentOS7%E4%B8%8B%E5%AE%89%E8%A3%85PHP7&variant=zh

yum install php56u-cli



php7.0版本

#rpm 安装 php7 相应的 yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

#yum安装php7 
yum install php70w php70w-fpm php70w-mysql php70w-mbstring php70w-mcrypt php70w-gd php70w-imap php70w-ldap php70w-odbc php70w-pear php70w-xml php70w-xmlrpc php70w-pdo

#启动php-fpm服务
sudo systemctl start php-fpm

#设置开机启动
sudo systemctl enable php-fpm

#参考 https://blog.csdn.net/weixin_37939964/article/details/78966326


php5.4版本

(php5.4 lampp集成环境:https://excellmedia.dl.sourceforge.net/project/xampp/XAMPP%20Linux/1.8.2/xampp-linux-x64-1.8.2-3-installer.run)

#添加源
rpm -Uvh  

#安装
yum -y install php

#安装 PHP 扩展
yum --enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite \
php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli \
php-pear php-pdo

#后台运行php-cgi进程(执行后如需退出终端,需使用exit退出,否则该后台运行的进程可能运行了6、7个小时之后断掉,参考:https://blog.csdn.net/beijicy/article/details/47317567)
nohup php-cgi -b 9000 -q >/dev/null 2>&1 & 

#如修改了php.ini文件需要重启php,需要先查看php-cgi的进程id
#查看php-cgi的进程
ps -ef|grep php-cgi

#利用进程号杀掉进程,再重新运行php-cgi进程
kill -9  进程号


#安装mysql扩展
yum --enablerepo=remi,remi-test install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

#配置nginx文件
#进入/etc/nginx/nginx.conf 
#开启php支持,只需要安装php后,打开nginx配置文件中加入以下部分,重启nginx

location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
    # 原始的nginx配置是上面注释的部分,应该改成下面部分
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}


本帖已被设为精华帖!
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter