Linux 环境下安装 Nginx+php+mysql 开发环境
一直以来都没有养成记录学习的好习惯,我想从这么一天开始,把自己学习和工作中的经验和坑都记录下来。等到以后老的时候还有可以回忆的地方。
最近在学习linux,虽然已经玩linux很久了,但是没有怎么用心去学。这次我决定把自己在linux的学习之路记录下来。
Linux下安装 Nginx+PHP+MySql
1.nginx 的安装
安装nginx首先需要编译环境的gcc g++ 等开发库已经安装好。
- 首先执行一下命令 保证gcc g++ 完整安装
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel ssse2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers -
yum install nginx -y
- 启动nginx
sudo systemctl start nginx - 设置开机启动
sudo systemctl enable nginx - 启动了nginx 后 可以在内网访问http://localhost 可以看到如下显示则说明nginx已经成功安装
- 如果要通过外网访问 还需要 打开80 端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
这个时候 我们就可以通过外网访问了
2.安装php
- 要让 nginx 能够执行 php 文件,需要去安装一下 php-fpm,我要安装的是比较新的 PHP 7 ,这个软件包可以在 IUS 仓库里找到,所以你需要先安装 IUS 仓库。
sudo yum install php70u-fpm -y
- 启动php-fpm
sudo systemctl start php-fpm - 将php-fpm添加到开机启动
sudo systemctl enable php-fpm - 这一部分只是安装了php-fpm 然而还需要安装些许php的扩展这样才能保证你的php支持json,mysql等
sudo yum install php70u-gd php70u-mysqlnd php70u-pdo php70u-mcrypt php70u-mbstring php70u-json php70u-opcache php70u-xml -y如果上一步出现了
- 请执行
yum provides '*/applydeltarpm' 和 yun install deltarrpm
- 重新加载php-fpm
sudo systemctl reload php-fpm - 如果 YUM进行install或update出现KeyboardInterrupt错误
3.安装mysql/mariadb
- MySQL 与 MariaDB 是相互兼容的,现在社区推荐使用 MariaDB,所以我们可以去安装一下 MariaDB ,用它代替 MySQL
yum install mariadb101u-server -y - 启动 mysql
sudo systemctl start mariadb - 设置开机启动
sudo systemctl enable mariadb
4.目录和文件权限
网站上面有些目录或文件需要有写入权限,这样你得为这些目录和文件分配合适的权限,一般可以把它们的拥有者设置成 php-fpm 使用的用户,查看一下谁在运行 php-fpm 这个服务:
sudo ps aux|grep php
修改所使用的用户,php-fpm 的配置文件是:/etc/php-fpm.conf,还有在 /etc/php-fpm.d/* 这个目录里的所有文件都是 php-fpm 的配置文件。默认这个目录里有一个 www.conf ,你可以编辑这个文件来修改 php-fpm 所使用的用户名称。使用 vim 命令:
vim /etc/php-fpm.d/www.conf
打开文件以后你可以搜索下关键词 user ,输入 :/user ,会搜索到结果,按小 n 可以继续向下查找,按大 N 可以向上查找。直到你看到:
user = php-fpm
这个 php-fpm 就是运行 PHP-FPM 的用户的名字,你看到的也可能是其它的名字,这不重要。你只要知道这个用户是谁,在哪里可以修改这个用户就行了。在遇到目录写入权限的问题,比如不能正常上传网站的文件,你可以把保存上传文件的那个目录的拥有者修改成运行 PHP-FPM 的用户就可以了。
修改目录的拥有者可以使用这样的命名:
sudo chown -R 用户名 目录
这样就会把指定的目录的拥有者修改成指定的用户了。也就是如果你把目录的拥有者修改成运行 PHP-FPM 的那个用户,那么在网站上再去上传文件就不会有权限的问题了,因为目录的拥有者一般都会拥有可以写入的权限。