首頁 後端開發 PHP問題 linux php調試環境怎麼搭建

linux php調試環境怎麼搭建

Dec 08, 2021 am 09:32 AM
linux

linux php調試環境的搭建方法:1、下載安裝MySQL;2、開啟php-fpm,監聽9000埠;3、進行PHP解壓縮編譯安裝;4、修改設定檔並安裝Nginx即可。

linux php調試環境怎麼搭建

本文操作環境:ubuntu 16.04系統,PHP7.1版,Dell G3電腦。

linux php調試環境怎麼搭建?

Linux的PHP開發環境快速建置

建置的環境是LNMP:

##1、安裝MySQL

這個非常簡單我用的是Ubuntu那麼就用apt來源,下載deb檔然後依照全新安裝文件依序:a.加入apt庫  b.更新apt庫c.安裝d.執行MySQL

下載:

https://dev.mysql.com/downloads/repo/apt/
登入後複製
文件:

https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install
登入後複製

2、PHP##這裡開啟php-fpm,監聽9000埠。

相關文件:

http://php.net/manual/zh/install.unix.nginx.php
登入後複製

a. 下載

https://www.php.net/downloads.phpwget https://www.php.net/distributions/php-7.1.33.tar.gz
登入後複製

任意選擇一個映像下載到本機或取得到下載位址然後wget下載到本機

b .解壓縮、編譯、安裝

tar zxf php-x.x.x
cd ../php-x.x.x./configure --prefix=/usr/local/php --enable-fpm --enable-pdo --with-pdo-mysql --enable-mysqlnd --with-mysqli --with-opensslmake
sudo make install
登入後複製

有精簡控的一定加上--prefix,這樣安裝目錄才會在那裡

其中按順序執行下來會遇到的問題有pcre、 zlib、libxml2不存在的問題,那麼直接百度進入官網取得最新版本的tar.gz格式安裝套件然後解壓縮編譯安裝。

swoole 的入門手冊

https://linkeddestiny.gitbooks.io/easy-swoole/content/book/chapter01/install.html
登入後複製
./configure --prefix=/usr/local/php \
--with-config-file-path=/etc/php \
--enable-fpm \
--enable-pcntl \
--enable-mysqlnd \
--enable-opcache \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-zip \
--enable-soap \
--enable-xml \
--enable-mbstring \
--disable-rpath \
--disable-debug \
--disable-fileinfo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-pcre-regex \
--with-iconv \
--with-zlib \
--with-mcrypt \
--with-gd \
--with-openssl \
--with-mhash \
--with-xmlrpc \
--with-curl \
--with-imap-ssl
登入後複製

c、安裝完畢以後設定檔(官方文件搬磚過來的),每一行都不能忘記哦

sudo cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/php/bin
登入後複製

小插曲:防止檔案不存在,則阻止Nginx 將請求發送到後端的PHP-FPM 模組, 以避免遭受惡意腳本注入的攻擊

vim /usr/local/php/lib/php.ini
修改参数为:cgi.fix_pathinfo=0
登入後複製

由於本人對vim也不熟悉所以建議sudo atom 或者sudo sublime之類以圖形介面軟體開啟.

d、下面和PHP手冊不一樣的是:(以下功能是讓fpm讀取配置PHP-FPM使用者群組和使用者並開啟監聽9000連接埠) 其實手冊所說/usr/local/etc/php-fpm.conf根本沒有使用者群組設定選項,自己手動加上又會報告檔案找不到,甚是鬱悶,應該這樣樹立

建立web用戶:

groupadd www-data
useradd -g www-data www-data
登入後複製

開啟

php-fpm.conf

vim /usr/local/php/etc/php-fpm.conf
登入後複製
找到最下面那一行:

include=NONEl/etc/php-fpm.d/*.conf
登入後複製

將NONE改為真實路徑:

include=/usr/local/php/etc/php-fpm.d/*.conf
登入後複製

然後在這個正規匹配設定檔的加上使用者群組和使用者資訊:

cd /usr/local/php/etc/php-fpm.d
sudo cp www.conf.default www.conf
登入後複製
vim /usr/local/php/etc/php-fpm.d/www.conf
登入後複製

查找到使用者設定跟改內容為以下:

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group;       will be used.
user = www-data
group = www-data
登入後複製

開啟FPM

/usr/local/bin/php-fpm
登入後複製

e、檢查是否成功:

netstat -tln | grep 9000
登入後複製

如果看到TCP 9000 LISTEN則表示配置成功如果無任何輸出表示9000埠未監聽,請重試

3、安裝Nginx#Nginx中文文檔呢讓我踩坑了

http://www.nginx.cn/installhttp://www.nginx.cn/doc/setup/nginx-ubuntu.html
登入後複製

這兩個都是版本太舊,PHP5什麼的或參數特別多安裝總有各種問題,而且不喜歡apt去安裝,起碼版本選擇上沒那麼自由,刪除也要用apt去刪除所以我用最簡單的方式安裝就是下載、編譯、安裝

下載

http://nginx.org/en/download.html
登入後複製

選一個喜歡的版本下載完了

tar -zxvf 
cd 
./configure --prefix=/usr/local/nginx
make 
make install
登入後複製

如果在configure時候提示一些zlib之類的軟體不存在百度下載tar包解壓縮安裝便是

安裝目錄解答:

安裝完了以後在/usr/local/nginx

設定檔:/usr/local/nginx/conf/nginx .conf

虛擬主機檔案目錄:/usr/local/nginx/html

#執行檔:/usr/local/nginx/sbin/nginx

#設定檔需要做到的就是a.index.html後面加index.php   b.符合.php規則的交給9000埠

埠用預設nginx:80 php:9000 虛擬主機目錄用預設的/usr/local/ nginx/html

總共配置了兩個地方:

location / {
            root   html;
            index  index.html index.php index.htm;
        }
登入後複製
#location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;#    include        fastcgi_params;#}
登入後複製

好啦,現在去執行目錄

sudo ./nginx -s reopen
登入後複製

 啟動nginx

#html目錄新test. php瀏覽器輸入localhost/text.php就可以看到設定成功了.

PHP擴充安裝:參考手冊

http://php.net/manual/zh/install.pecl.phpize.php
登入後複製

執行流程是:進入編譯時使用的PHP原始碼包的ext在進入相關擴充目錄, phpize產生configure文件, ./configure ,  make && make install

cd /home/username/php7.0.29/ext
cd curl
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
登入後複製

可能會出現autoconf出錯情況,如果是ubuntu直接運行就可以了,然後去lib.php/ini將擴展註釋去除就可以咯:

sudo apt-get install autoconf
登入後複製

Linux 簡單和常用的指令:

1、根目錄下找httpd.conf檔:

find / -name httpd.conf
登入後複製
2、顯示/usr/src目錄下的

檔案(包含子目錄)

包含magic的行,這個尋找的可是檔案的內容:

grep -r magic /usr/src
登入後複製
 3、VIM編輯器找出內容

尾行模式:/content Enter
登入後複製

 4、php- fpm的進程關閉

sudo pkill php-fpm
登入後複製

 5、MySQLI安裝

./configure –with-php-config=/usr/local/php/bin/php-config –with-mysqli=/usr/bin/mysql_config
登入後複製

php_config找不到

sudo apt-get install libmysqlclient-dev
登入後複製

之后遇到make错误,mysqli.lo不存在,是因为某个.h文件未找到导致编译失败图示:

解决方案:

https://www.cnblogs.com/xiaoqian1993/p/6277771.html
登入後複製

6、ubuntu安装apt install资源占用

Could not get lock /var/lib/dpkg/lock!
sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock
登入後複製

7、简单的定时任务

ubuntu 设定定时器任务:1、
    将ubuntu中crontab的编译器切换到VIM
    export EDITOR=vim  
    修改后最好重启一下crontab    /etc/init.d/cron stop  
    /etc/init.d/cron start 

2、
    设定每一分钟向/home/hello.txt文本追加一个hello
    创建tesh.sh内容:
    echo hello >> /home/hello.txt
    创建文件hello.txt(注意所属用户、所属组、其他用户)的读写执行权限的分配.
    将.sh加入定时任务
    命令行输入 
    crontab -e
    编辑文本内容为    */1 * * * * sh /home/test.sh
登入後複製

linux添加环境变量:

由于linux环境变量值中/usr/local/php并不属于,/usr/local/bin里面的倒是可以全局访问的,现在将php加入全局变量。

sudo vim /etc/profile//加入mysql、PHP的执行文件所在目录PATH=$PATH:/usr/local/php/bin:/usr/local/mysql/bin
export PATH//两行代码加到末尾然后执行以下指令使其生效source /etc/profile
登入後複製

或者添加快捷方式形式:

ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config
登入後複製

nginx.conf | laravel

#user  www-data;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;
    #
    server {
        listen       8080;
        server_name  localhost;

        index index.html index.htm index.php;

        location / {
            root   /home/www/laravel/public;
            autoindex on;
            try_files $uri $uri/ /index.php?$query_string;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /home/www/laravel/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

    server {
        listen       80;
        server_name  localhost;

        index index.html index.htm index.php;

        location / {
            root   /home/www;
            autoindex on;
            try_files $uri $uri/ /index.php?$query_string;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /home/www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }


}
登入後複製

composer安装

https://pkg.phpcomposer.com/#how-to-install-composer
登入後複製

推荐学习:《PHP视频教程

以上是linux php調試環境怎麼搭建的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Linux實際上有什麼好處? Linux實際上有什麼好處? Apr 12, 2025 am 12:20 AM

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

將Docker與Linux一起使用:綜合指南 將Docker與Linux一起使用:綜合指南 Apr 12, 2025 am 12:07 AM

在Linux上使用Docker可以提高開發和部署效率。 1.安裝Docker:使用腳本在Ubuntu上安裝Docker。 2.驗證安裝:運行sudodockerrunhello-world。 3.基本用法:創建Nginx容器dockerrun--namemy-nginx-p8080:80-dnginx。 4.高級用法:創建自定義鏡像,使用Dockerfile構建並運行。 5.優化與最佳實踐:使用多階段構建和DockerCompose,遵循編寫Dockerfile的最佳實踐。

apache80端口被佔用怎麼辦 apache80端口被佔用怎麼辦 Apr 13, 2025 pm 01:24 PM

當 Apache 80 端口被佔用時,解決方法如下:找出佔用該端口的進程並關閉它。檢查防火牆設置以確保 Apache 未被阻止。如果以上方法無效,請重新配置 Apache 使用不同的端口。重啟 Apache 服務。

apache怎麼啟動 apache怎麼啟動 Apr 13, 2025 pm 01:06 PM

啟動 Apache 的步驟如下:安裝 Apache(命令:sudo apt-get install apache2 或從官網下載)啟動 Apache(Linux:sudo systemctl start apache2;Windows:右鍵“Apache2.4”服務並選擇“啟動”)檢查是否已啟動(Linux:sudo systemctl status apache2;Windows:查看服務管理器中“Apache2.4”服務的狀態)啟用開機自動啟動(可選,Linux:sudo systemctl

oracle怎麼啟動監聽 oracle怎麼啟動監聽 Apr 12, 2025 am 06:00 AM

啟動 Oracle 監聽器的步驟如下:檢查監聽器狀態(使用 lsnrctl status 命令)對於 Windows,在 Oracle Services Manager 中啟動 "TNS Listener" 服務對於 Linux 和 Unix,使用 lsnrctl start 命令啟動監聽器運行 lsnrctl status 命令驗證監聽器是否已啟動

如何在Debian上監控Nginx SSL性能 如何在Debian上監控Nginx SSL性能 Apr 12, 2025 pm 10:18 PM

本文介紹如何在Debian系統上有效監控Nginx服務器的SSL性能。我們將使用NginxExporter將Nginx狀態數據導出到Prometheus,再通過Grafana進行可視化展示。第一步:配置Nginx首先,我們需要在Nginx配置文件中啟用stub_status模塊來獲取Nginx的狀態信息。在你的Nginx配置文件(通常位於/etc/nginx/nginx.conf或其包含文件中)中添加以下代碼段:location/nginx_status{stub_status

Debian系統中如何設置回收站 Debian系統中如何設置回收站 Apr 12, 2025 pm 10:51 PM

本文介紹兩種在Debian系統中配置回收站的方法:圖形界面和命令行。方法一:使用Nautilus圖形界面打開文件管理器:在桌面或應用程序菜單中找到並啟動Nautilus文件管理器(通常名為“文件”)。找到回收站:在左側導航欄中尋找“回收站”文件夾。如果找不到,請嘗試點擊“其他位置”或“計算機”進行搜索。配置回收站屬性:右鍵點擊“回收站”,選擇“屬性”。在屬性窗口中,您可以調整以下設置:最大大小:限制回收站可用的磁盤空間。保留時間:設置文件在回收站中自動刪除前的保

如何優化debian readdir的性能 如何優化debian readdir的性能 Apr 13, 2025 am 08:48 AM

在Debian系統中,readdir系統調用用於讀取目錄內容。如果其性能表現不佳,可嘗試以下優化策略:精簡目錄文件數量:盡可能將大型目錄拆分成多個小型目錄,降低每次readdir調用處理的項目數量。啟用目錄內容緩存:構建緩存機制,定期或在目錄內容變更時更新緩存,減少對readdir的頻繁調用。內存緩存(如Memcached或Redis)或本地緩存(如文件或數據庫)均可考慮。採用高效數據結構:如果自行實現目錄遍歷,選擇更高效的數據結構(例如哈希表而非線性搜索)存儲和訪問目錄信

See all articles