前言
之前一直使用XAMPP當做windows的測試環境,但是有以下缺點:
1. 不能切換php版本
2. 用的是apache不是nginx
3. 無php擴展安裝
4. 無偽靜態配置
5. 無軟件管理
優點:
netstat 本機端口監聽圖形界面 => 但是可以用 windows 內建功能【資源監視器(resmon)】中的【接聽連接埠】取代
為了能使用低版本的php測試SQL注入,和使用不同版本的php測試不同專案
改使用以下工具
寶塔
優點
支持linux和windows
可安裝php 5.2 - 8.0 多版本的php,並快速切換php版本,安裝php擴展
linux可安裝5.1-8.0 版本的mysql,windows可安裝5.5-8.0 版本的mysql。可安裝mariadb
面板可查到mysql密碼
內建不同php框架的nginx偽靜態模板
linux版本在面板快速切換php cli的版本
面板整合:反向代理、重定向、計劃任務、SSL、防火墻
特點
新項目自動生成.user.ini 、index.html、404.html
面板上安裝PHP後會自動安裝composer
缺點
pecl只支持到php 7.3,不支持php 7.4、php 8.0
CentOS 安裝寶塔
https://www.bt.cn/download/linux.html 宝塔Linux面板 7.7.0
https://www.shopee6.com/web/web-tutorial/remove-bt-panel-forced-login.html 一键解决BT宝塔面板的强制登陆限制要求教程
安裝
# yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
去除登錄(windows版本不需要)
# sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js
# rm -rf /www/server/panel/data/bind.pl
查面板登錄信息
# bt
(然後 prompt輸入14)
CentOS安裝特定版本XDebug
因為寶塔後台php 8 裝的xdebug版本是 v3.0.0
# php -v
PHP 8.0.8 (cli) (built: Jul 13 2021 10:56:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.8, Copyright (c) Zend Technologies
with Xdebug v3.0.0, Copyright (c) 2002-2020, by Derick Rethans
但是 v3.0.0 有bug,在停在斷點時取消斷點,會中止xdebug調試。又寶塔的php 8沒有pecl,所以需要手動安裝 xdebug-3.0.4
https://programming-review.com/php/installing-xdebug/ Installing Xdebug on CentOS
https://xdebug.org/docs/install#compile Installation
下載 xdebug-3.0.4
# wget https://xdebug.org/files/xdebug-3.0.4.tgz
解壓縮
# tar -zxf xdebug-3.0.4.tgz
進入目錄
# cd xdebug-3.0.4/
# phpize
直接configure 會失敗
# ./configure --enable-xdebug
checking for grep that handles long lines and -e... /usr/bin/grep
...
configure: error: Cannot find php-config. Please use --with-php-config=PATH
需指定php 8的php-config 路徑
# ./configure --enable-xdebug --with-php-config=/www/server/php/80/bin/php-config
# make
# make install
即安裝成功
# php -v
PHP 8.0.8 (cli) (built: Jul 13 2021 10:56:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.8, Copyright (c) Zend Technologies
with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans
設定php.ini
/www/server/php/80/etc/php.ini
[xdebug]
zend_extension="/path/xdebug-3.0.4/xdebug.so"
xdebug.mode=debug
xdebug.client_host=192.168.1.x
configure報錯
# ./configure --enable-xdebug --with-php-config=/www/server/php/72/bin/php-config
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
=> 安裝re2c # yum install re2c
checking for gawk... gawk
checking whether to enable Xdebug support... yes, shared
checking whether to enable Xdebug developer build flags... no
./configure: line 4483: syntax error near unexpected token `-Wbool-conversion,'
=> 重新安裝PHP 7.2
./configure: line 4483: ` AX_CHECK_COMPILE_FLAG(-Wbool-conversion, _MAINTAINER_CFLAGS="$_MAINTAINER_CFLAGS -Wbool-conversion")'
wget時https證書過期
# wget https://xdebug.org/files/xdebug-3.1.5.tgz
...
ERROR: cannot verify xdebug.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
To connect to xdebug.org insecurely, use `--no-check-certificate'.
加 --no-check-certificate 或 # yum update ca-certificates
Windows 安裝特定版本的XDebug
https://xdebug.org/download 直接下載 Windows binaries ,如 PHP 8.0 VS16 (64 bit)
然後直接修改 php.ini
C:\BtSoft\php\80\php.ini
zend_extension="C:\BtSoft\php\80\ext\php_xdebug-3.0.4-8.0-vs16-nts-x86_64.dll"
xdebug.mode = debug
xdebug.client_port = 9003
xdebug.client_host = "192.168.1.x"
xdebug.idekey=PHPSTORM
避免Windows寶塔開機自動啟動服務
Windows服務中將以下的服務的啟動類型改成【手動】
btPanel
btTask
mysql
nginx
安裝不同版本的MySQL
https://www.cnblogs.com/bjlhx/p/10538781.html 007-docker-安装-mysql:5.6
因為寶塔已經安裝了MySQL5.7,一次只能安裝一個MySQL,如果要同時安裝不同版本的MySQL需使用docker
以MySQL 5.6為例
新建目錄 /root/my-mysql-5.6 ,將MySQL資料放在這裡
# docker run -p 23306:3306 --name my-mysql-5.6 -v /root/my-mysql-5.6:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
Unable to find image 'mysql:5.6' locally
5.6: Pulling from library/mysql
..
第一次會拉取官方mysql:5.6鏡像
如果你的機器不能訪問MySQL 5.6 服務可以進入容器這樣做
# docker exec -it my-mysql-5.6 bash
root@c5fe23e1a123:/# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' ;
Query OK, 0 rows affected (0.00 sec)
就可以以23306端口訪問MySQL 5.6服務
--character-set-server=utf8mb4 => 讓你的 character_set_server 是 utf8mb4 而不是latin1
--collation-server=utf8mb4_unicode_ci => 讓你的 collation_server 是 utf8mb4_unicode_ci 而不是latin1_swedish_ci
安裝beanstalkd 和 beanstalkd-console
https://hub.docker.com/r/schickling/beanstalkd-console schickling/beanstalkd-console
如果開發環境選用寶塔而不是laradock,而寶塔軟件管理無beanstalk,可使用docker
# docker run -d -p 11300:11300 --name beanstalkd schickling/beanstalkd
# docker run -d -p 2080:2080 --link beanstalkd:beanstalkd schickling/beanstalkd-console
然後即可透過瀏覽器訪問 beanstalkd-console
一直提示open_basedir restriction in effect(windows server 2016)
https://www.bt.cn/bbs/thread-6877-1-1.html 一直提示open_basedir restriction in effect
網站目錄 =》 取消勾選【防跨站攻击(open_basedir)】
phpstudy
版本 8.1.1.3
優點
可安裝php 5.2 - 8.0 多版本的php,並快速切換php版本,安裝php擴展
可安裝5.1-8.0 版本的mysql
面板可查到mysql密碼
特點
面板設置nginx偽靜態(編輯=>偽靜態和偽靜態是相同的),設完後在專案目錄下將偽靜態寫入 nginx.htaccess(nginx)或 .htaccess(apache)。
網站自動生成index.html 入口文件
網站自動生成 error 錯誤頁面目錄
缺點
php小版本非最新版
php-fpm 9000端口和phpstorm xdebug 端口衝突,需要更改xdebug端口
phpEnv
版本 8.9.0
優點
可離線安裝(預設只有php 7.4,面板軟件商店下載解壓縮後即完成php多版本安裝)
php-fpm 和phpstorm xdebug 端口不衝突
可安裝php 5.2 - 8.2 多版本的php,並快速切換php版本
面板可改MySQL密碼
內建不同php框架的nginx URL重寫模板
可安裝redis MySQL
預設裝好composer(phpEnv\tools\Composer\composer.phar)
同時跑多版本MySQL
phpEnv裝 MySQL 5.7
到MySQL官網下載MySQL 8.0
https://dev.mysql.com/downloads/file/?id=516927下載 mysql-installer-community-8.0.32.0.msi ,雙擊執行安裝