公司给了一份后台代码,要在本地跑起来。
一、NGINX + php-fpm
1、homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、nginx
brew install nginx
开启NGINX服务:sudo nginx
暂停服务:sudo -s stop
关闭服务:sudo -s quit
重启服务:sudo -s reload
3、配置修改
文件路径(如果你没有修改的话)/usr/local/etc/nginx/nginx.conf
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /you/web/path; #配置web目录
#root /usr/local/var/www;
autoindex on;
index index.html index.htm index.php; #添加php默认
}
location ~ \.php$ {
root /you/web/path;
#root /usr/local/var/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
目的是修改文件路径和开启php服务。
4、php-fpm
下载,由于一些原因,brew下载php比较麻烦,我试了很多种方法,下面这种方法是可行的,而且简单。
brew search php
brew install php@7.2
brew link php@7.2
brew link 出现warning执行(使用zsh的可将bash_profile改为zshrc)
echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.2/sbin:$PATH"' >> ~/.bash_profile
配置文件 /private/etc/php-fpm.conf
将;error_log = log/php-fpm.log替换为下面的代码
error_log = /usr/local/var/log/php-fpm.log
而且/private/etc/php-fpm.d/下面没有对应的conf文件,所以需要添加conf文件:
sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf(将default文件复制到conf文件)
启动sudo php-fpm
二、Apache + php(mac自带)
1、apachectl -version
php -v
开启Apache:
sudo apachectl start
关闭Apache:
sudo apachectl stop
重启Apache:
sudo apachectl restart
2、修改配置文件 一般在 /etc/apache2/httpd.conf
# DocumentRoot "/Library/WebServer/Documents"
DocumentRoot “/Users/panyox/Sites”
<Directory “/Users/panyox/Sites”>
注释掉的是源文件内容,添加的是新路径(名字自己定)。
3、在该文件里找到下面这两行,将前面的注释符号取消。
#LoadModule php5_module libexec/apache2/libphp5.so
#LoadModule userdir_module libexec/apache2/mod_userdir.so
保存退出该文件。
4、在打开的apache2文件夹下找到users文件夹,将之打开看是否有panyox.conf。
没有的话,新建一个,并且输入
<Directory "/Users/panyox/Sites/">
Options Indexes MultiViews
AllowOverride All
Require all granted
</Directory>
然后,chmod修改一下权限。
5、这就能够使用了。
注意可能遇到的错误:
1、浏览器访问php路径时,网页出现:STORAGE_WRITE_ERROR:./Application/Runtime/Cache/Admin/0dfec61edd66f450033aa87c28a760f4.php
这是文件权限问题。cd到Application文件里 sudo chmod -R 777 Runtime ,或者对整个文件增加所有权限:chmod -R 777 ./
2、You don’t have permission to access /test.php on this server.
也可能是第一个问题的原因,使用第一个问题的解决方法是可行的。
或者是另外一个原因:在httpd.conf文件中有这样一段:
<Files ~>
AllowOverride AuthConfig FileInfo Indexs Limit Options
Order allow ,deny
Deny from all-----------------注意:就是这儿!!--->把这行去掉或注释掉就行!!!
</Files>
上面那一行改成Allow from all也行,就是文件操作权限是否允许。