PHP 网页 apache24+php8 yii basic
PHP官网下载 https://windows.php.net/download/
在PHP官网点击Download下载时不管选择哪个版本的都有两个类型 :
Non Thread Safe(非线程安全)和 Thread Safe (线程安全)
如果需要配合 Apache 使用,需要下载 Thread Safe 版本(才包含php7apache2_4.dll模块)。
apache24+php8配置
将 php8 目录中的 php.ini-development 改名为 php.ini,然后打开这个文件找到 extension_dir=“ext”,去掉注释分号,改为extension_dir = “D:/software/php8/ext” (php的安装路径/ext)
打开 apache 目录中的 config/httpd.conf,在 LoadModule 后面追加(将php加到apache中):
#载入PHP处理模块 LoadModule php_module "D:/workspace/php8/php8apache2_4.dll" #php安装路径 PHPIniDir "D:/workspace/php8" #所有的*.php文件使用php处理 AddType application/x-httpd-php .php .phtml
添加虚拟目录: 先注释掉原来的路径:DocumentRoot "${SRVROOT}/htdocs",在 httpd.conf 文件后面加上:
<IfModule dir_module> DirectoryIndex index.php index.html index.htm default.php default.html default.htm home.php home.html home.htm #G:/workspace/yii2-basic/web 放php项目的地方,取一个别名 testuri Alias /testuri "G:/workspace/yii2-basic/web" DocumentRoot "G:/workspace/yii2-basic/web" <Directory "G:/workspace/yii2-basic/web"> Options Indexes FollowSymLinks AllowOverride all Require all granted </Directory> </IfModule>
配置虚拟主机(配置多个服务的地方): 打开:conf/extra/httpd-vhosts.conf,在文件后面添加
<VirtualHost *:80> #和前面的 DocumentRoot 一致 DocumentRoot "G:/workspace/PhoneShop/nginx/yii2-basic/web" #虚拟主机名 访问时的网址 ServerName www.testuri.com ErrorLog "logs/www.testuri.com-error.log" CustomLog "logs/www.testuri.com-access.log" common </VirtualHost>
修改本地网址IP解析指向(访问www.testuri.com时,IP为本地),打开 C:\Windows\System32\drivers\etc\hosts 文件,在后面添加:
127.0.0.1 www.testuri.com
在 web 目录新建一个 test.php(hello world),启动 apache 输入网址访问测试。
YII2部分
1. 开启 apache 的 mod_rewrite 模块
去掉 LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号;
2. 修改 apache 的 AllowOverride
把 AllowOverride None 修改为 AllowOverride All;
3. 在与index.php文件同级目录(yii2 web目录)下添加文件“.htaccess”
Options +FollowSymLinks IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php
4. 配置应用的urlManager
需要在config/web.php中的 components 数组下增加:
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ] ],