之前一直用docker搭建服务器运行环境,最近有个朋友来找我在服务器上手工搭建个PHP环境,搞了大半天,快玩不转了。
最近呢有个朋友找我帮忙搭建个PHP的环境,本来想让他直接用docker的。但是他买的是聚石塔的服务器,那边不给数据库开外网,只能内网去访问。用docker搭载宿主机的网络去访问的时候老是时不时的找不到地址,整个服务老是中断,无奈只能迁出来,一个个的安装重新搭建环境。我也是菜鸟一个折腾了半天总算搞定了。
准备工作
更换阿里源
服务器安装的centos7系统,先来换下阿里源。
|
|
安装EPEL
EPEL(Extra Packages for Enterprise Linux)是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS等提供高质量软件包的项目。就是一个高质量的白嫖软件源。
安装后可以使用 yum install packageName
,即可安装很多以前需要编译安装的软件、常用的软件或一些比较流行的软件,比如Nginx之类。
安装REMI源
CentOS下除了EPEL源之外还有REMI的源,REMI源保证了软件的最新版,但是不保证软件是稳定版。主要拿来安装最新的PHP版本。
|
|
安装PHP7+
选择PHP版本
先查询下可以安装的PHP版本
|
|
设置默认安装的版本,这里我选择了php7.2
|
|
安装PHP扩展
|
|
PHP-FPM
|
|
最后查看下PHP-FPM的进程
|
|
也可以通过 service php-fpm status
查看下启动状态
配置文件
php-fpm.conf
文件默认在 /etc/php-fpm.conf
php.ini
文件默认在 /etc/php.ini
php.ini
文件里有一些参数需要修改,编辑进入搜索 max
带这个关键字的一些配置自己看描述修改吧,也就是一些限制内存啦,文件大小啦,执行时间啦之类的
修改完 systemctl reload php-fpm
执行下即可。
安装Nginx
|
|
如果遇到nginx重启之类提示说PID为空或者找不到的,可以看下是否有残留进行杀掉,然后 nginx -c /etc/nginx/nginx.conf
指定好配置文件。
可以通过 service nginx status
查看nginx的状态。
Nginx的默认配置目录都在 /etc/nginx/
下,默认错误日志在 /var/log/nginx/error.log
,主要服务器配置文件在 /etc/nginx/conf.d/*.conf
下面是一份简单的Server配置, 做了Https的301 跳转,不需要的话就把ssl相关部分去掉,301跳转去掉即可。
|
|
最后重启下nginx让配置生效 nginx -s reload
, 如果中间有问题记得查看下nginx的错误日志文件,很有用,基本坑都会记录在里面 /var/log/nginx/error.log
。
安装Mysql
因为朋友这边是使用的聚石塔的RDS,其实是不需要安装数据库的了,不过还是简单写下Mysql的安装把,这里使用Mysql5.7为例,想要安装Mysql8的自行换下。
|
|
Laravel权限
安装完 Laravel 后,你可能需要给这两个文件配置读写权限:storage
目录和 bootstrap/cache
目录应该允许 Web 服务器写入。
这里需要给PHP-FPM
运行角色的权限。
|
|
可以看到我这里子进程是一个 apache
用户在执行,所以需要把上面2个目录改成 apache
(我也不知道这个鬼用户那里创建来的,可能默认安装php-fpm的时候创建的吧…)。
找到对应的目录
|
|