当前位置:   article > 正文

Mac M1/Intel 芯片 Nginx+PHP开发环境配置——初探(一)_mac m1 nginx

mac m1 nginx

最近因为新买Mac M系列芯片笔记本,一直也没搭建过PHP的开发环境,花了一点时间特意在本机做了一次环境搭建测试具体如下。

软件清单

工具列表如下:

  1. Xcode

  1. VS Code

  1. Homebrew

  1. OpenSSL & wget

  1. MySQL

  1. Postgres

  1. PHP多版本

  1. Nginx

  1. 安装Xcode

xcode-select --install

  1. VS Code安装此处略过。

  1. 安装homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

  1. 安装openssl与wget

  1. brew install openssl
  2. brew install wget

  1. 安装MySQL

  1. brew install mysql
  2. brew services start mysql
  3. brew services list

# Intel x86 Chipset

code /usr/local/etc/my.cnf

# Apple Silicon M1 Chipset

code /opt/homebrew/etc/my.cnf

my.cnf的配置
  1. # Default Homebrew MySQL server config
  2. [mysqld]
  3. # Only allow connections from localhost
  4. bind-address = 127.0.0.1
  5. mysqlx-bind-address = 127.0.0.1
  6. # Add mode only if needed
  7. sql_mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

使用安全密码
  1. mysql_secure_installation
  2. brew services restart mysql

PS:MySQL8认证需要更新每个用户mysql_native_password,但是用户名和密码前没有空格,请务必注意。

mysql> SHOW VARIABLES LIKE 'validate_password%';
mysql> SET GLOBAL validate_password.policy=LOW;

  1. 安装Postgres

  1. brew install postgresql
  2. brew services start postgresql
  3. brew services list
  4. psql postgres

确认用户列表

postgres-# \du

  1. 安装多版本PHP

在Mac电脑上安装多个PHP版本时不能使用PHP默认的自制内核,而需要使用shivammathur/php。

  1. brew tap shivammathur/php
  2. brew install shivammathur/php/php@7.2
  3. brew install shivammathur/php/php@7.3
  4. brew install shivammathur/php/php@7.4
  5. brew install shivammathur/php/php@8.0
  6. brew install shivammathur/php/php@8.1

设置php7.4为 php CLI版本:
  1. brew unlink php
  2. brew link --overwrite --force php@7.4

对于php-fpm的每个版本更新,都需要提供唯一的端口。更改每个php-fpm的端口以匹配其php版本号。例如:php@7.4,我使用的端口为9074。

此外,如果希望php-fpm在你的用户帐户上运行,而不是_www。那么文件夹路径的差异取会决于计算机的Mac处理器(Intel x86或Apple M1 ARM),这一点也是需要非常注意的。

# Intel x86 Chipset

code /usr/local/etc/php/7.4/php-fpm.d/www.conf

# Apple Silicon M1 Chipset

code /opt/homebrew/etc/php/7.4/php-fpm.d/www.conf

www.conf文件配置

内容如下:

  1. # default
  2. user = _www
  3. group = _www
  4. listen = 127.0.0.1:9000
  5. # change to
  6. user = <your_username>
  7. group = staff
  8. listen = 127.0.0.1:9074

另外,在启动php-fpm前,可以在php.ini中将upload_max_filesize和post_max_size上限进行调整,比如:10M。

不同芯片的路径如下:

# Intel x86 Chipset

/usr/local/etc/php/7.2/php.ini

/usr/local/etc/php/7.3/php.ini

/usr/local/etc/php/7.4/php.ini

/usr/local/etc/php/8.0/php.ini

/usr/local/etc/php/8.1/php.ini

/usr/local/etc/php/8.2/php.ini

# Apple Silicon M1 Chipset

/opt/homebrew/etc/php/7.2/php.ini

/opt/homebrew/etc/php/7.3/php.ini

/opt/homebrew/etc/php/7.4/php.ini

/opt/homebrew/etc/php/8.0/php.ini

/opt/homebrew/etc/php/8.1/php.ini

/opt/homebrew/etc/php/8.2/php.ini

依据不同版本启动php-fpm

命令如下:

  1. brew services start php@7.2
  2. brew services start php@7.3
  3. brew services start php@7.4
  4. brew services start php@8.0
  5. brew services start php@8.1
  6. brew services start php@8.2

启动完成后,确认端口与进程:

Sudo lsof -i -n -P|grep php-fpm

PHP设置别名

具体操作如下:

# Intel x86 Chipset

alias php72="/usr/local/opt/php@7.2/bin/php"

alias php73="/usr/local/opt/php@7.3/bin/php"

alias php74="/usr/local/opt/php@7.4/bin/php"

alias php80="/usr/local/opt/php@8.0/bin/php"

alias php81="/usr/local/opt/php@8.1/bin/php"

alias php82="/usr/local/opt/php@8.2/bin/php"

# Apple Silicon M1 Chipset

alias php72="/opt/homebrew/opt/php@7.2/bin/php"

alias php73="/opt/homebrew/opt/php@7.3/bin/php"

alias php74="/opt/homebrew/opt/php@7.4/bin/php"

alias php80="/opt/homebrew/opt/php@8.0/bin/php"

alias php81="/opt/homebrew/opt/php@8.1/bin/php"

alias php82="/opt/homebrew/opt/php@8.2/bin/php"

刷新环境变量:

  1. source ~/.bash_profile
  2. source ~/.zshrc

依据别名查看php版本

刷新后可以测试一下别名是否能够切换不同的php版本,具体如下:

php72 -v

php73 -v

php74 -v

php80 -v

php81 -v

php82 -v

默认php -v命令:

此处也提供一个更简单的手动切换php版本方法:

在~/.bash_profile加入如下代码即可。

  1. # Make PHP switching versions easy
  2. function phpv() {
  3. brew unlink php
  4. brew link --overwrite --force "php@$1"
  5. php -v
  6. }
  1. # bash function
  2. phpv 7.4

同于手动切换版本命令:

  1. # brew
  2. brew unlink php
  3. brew link --overwrite --force php@7.4

升级PHP

关于升级的问题,如果出现升级错误,可以使用以下方式:

brew reinstall shivammathur/php/php@7.4

在WebStorm中新增debug的方法——Xdebug

这个方法是提供给喜欢在WebStorm中调试程序的小伙伴用的,不过我也喜欢,很是方便,具体配置如下:

  1. brew link --overwrite --force php@7.2
  2. pecl uninstall -r xdebug
  3. pecl install xdebug
  4. brew link --overwrite --force php@7.3
  5. pecl uninstall -r xdebug
  6. pecl install xdebug
  7. brew link --overwrite --force php@7.4
  8. pecl uninstall -r xdebug
  9. pecl install xdebug
  10. brew link --overwrite --force php@8.0
  11. pecl uninstall -r xdebug
  12. pecl install xdebug
  13. brew link --overwrite --force php@8.1
  14. pecl uninstall -r xdebug
  15. pecl install xdebug
  16. brew link --overwrite --force php@8.2
  17. pecl uninstall -r xdebug
  18. pecl install xdebug

更新php.ini

此处对于每个不同的版本都需要更新php.ini文件,例如,我在这里仅仅是更新php7.4的,具体内容如下:

  1. # Intel x86 Chipset
  2. code /usr/local/etc/php/7.4/php.ini
  3. # Apple Silicon M1 Chipset
  4. code /opt/homebrew/etc/php/7.4/php.ini
  5. 这里有一个小问题则需要说明:需要删除zend_extension="xdebug。因为在pecl安装过程中会将其添加到php.ini文件的顶部,并且xdebug默认端口是9003。
  6. php.ini具体内容如下:
  7. [xdebug]
  8. zend_extension="xdebug.so"
  9. xdebug.mode=debug
  10. xdebug.client_port=9003
  11. xdebug.idekey=PHPSTORM

当完成xdebug的配置后,并可以关闭所有的php-fpm进程,不过在生产环境不建议开启xdebug,新的mac或者是开发环境可以这么操作,请务必注意。

  1. Nginx

安装Nginx

命令如下:

  1. brew install nginx
  2. sudo nginx

测试nginx安装是否成功

成功后,做测试访问(端口请自行查看配置,默认为8080/80):

修改Nginx默认配置

# Intel x86 Chipset

code /usr/local/etc/nginx/nginx.conf

# Apple Silicon M1 Chipset

code /opt/homebrew/etc/nginx/nginx.conf

添加多服务器与大文件配置

在http{}内容块中添加:

  1. # 允许多服务器配置
  2. server_names_hash_bucket_size 512;
  3. # 大文件配置
  4. client_max_body_size 100M;

端口监听

在server{}内容块中配置:

  1. # From
  2. listen 8080;
  3. server_name localhost;
  4. index index.html;
  5. # To
  6. listen 80;
  7. server_name localhost test.x;
  8. index index.html index.htm index.php;

配置FastCGI

这下就可以开始配置FastCGI网关了,将其添加到默认的服务器的php-fpm中,建议安装最新版本的php,对于其他的服务器配置可以按项目需求配置。

  1. location ~ \.php$ {
  2. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  3. include fastcgi_params;
  4. fastcgi_pass 127.0.0.1:9074;
  5. fastcgi_split_path_info ^(.+\.php)(/.+)$;
  6. }
  7. charset utf-8;

添加基础安全配置
  1. add_header X-Frame-Options "SAMEORIGIN";
  2. add_header X-XSS-Protection "1;
  3. mode=block"; add_header X-Content-Type-Options "nosniff";

配置完成后可以建立测试文件,具体路径如下:

Intel x86芯片路径:

mv /usr/local/var/www/index.html /usr/local/var/www/index.php

code /usr/local/var/www/index.php

Apple Silicon M1 芯片路径:

mv /opt/homebrew/var/www/index.html /opt/homebrew/var/www/index.php

code /opt/homebrew/var/www/index.php

此处我使用index.html/index.php

  1. <?php
  2. echo phpinfo();
  3. ?>

重载nginx
sudo nginx -s reload

访问http://localhosthttp://localhost:8080

至此,nginx配置php单站点服务已经基本完成,可以进行初步的php开发。

下一节将讲述多站点配置。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/264550
推荐阅读
相关标签
  

闽ICP备14008679号