忽然想了解下php,之前在mac环境中学习过一段时间,几年不用又忘了打算重拾起来继续学习,争取自己能写一个WordPress插件。
1. 环境说明
- 操作系统: Windows11
- IDE: Phpstorm
- PHP: 8.1
- Web: Nginx
- WSL2
2. 在wsl中安装php开发环境
2.1. 安装Nginx
# 切换到root用户
sudo su - root
# 安装nginx
apt-get update
apt install nginx
配置信息:
# 虚拟主机配置文件,每个server一个配置文件
/etc/nginx/conf.d/
# 默认配置文件,最好将其删除
/etc/nginx/sites-enabled/
启动nginx
/etc/init.d/nginx start (reload|stop|restart)
2.2. 安装php
本着用新不用旧的原则,直接安装php8.1(8.2已经出来了,ubuntu源没有更新)
apt install php8.1-fpm
启动php-fpm
/etc/init.d/php7.4-fpm start
如果有插件需求,可以在进行安装
apt install php8.1-dom
apt install php8.1-mysql
apt install php8.1-redis
安装完插件,需要重启php-fpm。
2.3. 安装composer
curl -o /usr/local/bin/composer https://mirrors.aliyun.com/composer/composer.phar
chmod +x /usr/local/bin/composer
vim ~/.bashrc
# 填入如下内容
export COMPOSER_ALLOW_SUPERUSER=1
# 测试是否成功
composer -V
mysql、redis我都通过docker安装了,这里就不重复装了。
3. 创建PHP项目
通过Phpstorm创建php项目
3.1. 创建项目
点击创建即可
3.2. 配置Phpstrom的PHP环境
按下快捷键ctrl + alt+s打开设置,在PHP中设置PHP路径,先在PHP languar level中选择PHP版本。
然后点击CLI interpreter 选项最后的三个点,打开如下界面
选择WSL
一般只需要选择发行版即可,默认安装的php可执行命令就是在/usr/bin/php,如果不确定是不是这个命令,可通过如下命令确认:
root@charles:/etc/nginx/conf.d# which php
/usr/bin/php
点击确认后为如下界面
3.3. 整合nginx和php
在/etc/nginx/conf.d/中新建配置文件,以.conf结尾即可
vim /etc/nginx/conf.d/hellophp.conf
其内容如下:
server {
# 因为Docker中已经有80的nginx了,所以这里给一个不用的四位端口号
listen 1234;
listen [::]:1234;
charset utf-8;
# 注意,这里路径设置为phpstorm创建的路径 /mnt/d 表示D盘,后面就是D盘的路径
root /mnt/d/PhpstormProjects/hellophp/ ;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include snippets/fastcgi-php.conf;
#include fastcgi_params;
}
}
修改完成后重启nginx
/etc/init.d/nginx restart
4. 新建index.php文件
<?php
$msg = "Hello WSL";
echo $msg . PHP_EOL;
打开地址:127.0.0.1:1234/index.php,页面显示Hello WSL