ホームページ バックエンド開発 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 システム、PHP バージョン 7.1、Dell G3 コンピューター。

Linux PHP デバッグ環境をセットアップするにはどうすればよいですか?

Linux PHP 開発環境のクイックセットアップ

構築された環境は LNMP:

1. MySQL をインストールします

これは非常に簡単です。私は Ubuntu を使用しているので、apt ソースを使用し、deb ファイルをダウンロードして、新しいインストール ドキュメントの順序に従ってください: a. apt ライブラリを追加 b. apt ライブラリを更新 cインストール d. MySQL

Download:

https://dev.mysql.com/downloads/repo/apt/
ログイン後にコピー

Documentation:

https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install
ログイン後にコピー

2, PHP

# を実行します。 #here 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
ログイン後にコピー
ローカルにダウンロードする画像を選択するか、ダウンロード アドレスを取得してローカルにダウンロードします

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 を追加する必要があります

順番に実行するときに発生する問題zlib と libxml2 が存在しない場合は、Baidu の公式 Web サイトに直接アクセスして、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
ログイン後にコピー

Interlude: Prevent ファイルが存在しない場合、悪意のあるスクリプト インジェクションによる攻撃を避けるために、Nginx はバックエンド PHP-FPM モジュールにリクエストを送信できなくなります

vim /usr/local/php/lib/php.ini
修改参数为:cgi.fix_pathinfo=0
ログイン後にコピー

vim に詳しくないので、sudo をお勧めしますatom または sudo sublime. グラフィカル インターフェイス ソフトウェアを開きます。

d. 以下は PHP マニュアルとは異なります: (次の機能は、fpm に PHP-FPM ユーザー グループを読み取って設定させるためのものです)

実際、マニュアルには、/usr/local/etc/php-fpm.conf にはユーザー グループ設定オプションがまったくないと記載されています。手動で追加すると、ファイルが見つからない、または Depressed であることが報告されます。このように設定する必要があります。

Create Web user:

groupadd www-data
useradd -g www-data www-data
ログイン後にコピー

Open

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
ログイン後にコピー

これら 2 つのバージョンが古すぎる、PHP5 か何か、またはインストールするにはパラメータが多すぎます。いつも色々な問題があり、apt をインストールするのは好きではありませんが、少なくともバージョン選択の自由度があまりなく、削除するには apt を使用する必要があるため、最も簡単な方法でインストールしました。コンパイルしてインストールします

ダウンロード

http://nginx.org/en/download.html
ログイン後にコピー

お好みのバージョンを選択してダウンロードしてください

tar -zxvf 
cd 
./configure --prefix=/usr/local/nginx
make 
make install
ログイン後にコピー

設定中に zlib などのソフトウェアが存在しないというメッセージが表示された場合は、Baidu ダウンロード 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

合計 2 つの場所が設定されています:

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 ディレクトリを起動し、新しいテストを作成します PHP ブラウザに localhost/text.php と入力すると、設定が成功したことがわかります。

#PHP 拡張機能のインストール:

リファレンス マニュアル

http://php.net/manual/zh/install.pecl.phpize.php
ログイン後にコピー

実行プロセスは次のとおりです。コンパイルに使用される PHP ソース コード パッケージを入力し、関連する拡張ディレクトリを入力すると、phpize が設定ファイル ./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 ディレクトリにあるファイルを表示します ファイル (サブディレクトリを含む)

Contains 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 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

マルチスレッドをC言語で実装する4つの方法 マルチスレッドをC言語で実装する4つの方法 Apr 03, 2025 pm 03:00 PM

言語のマルチスレッドは、プログラムの効率を大幅に改善できます。 C言語でマルチスレッドを実装する4つの主な方法があります。独立したプロセスを作成します。独立して実行される複数のプロセスを作成します。各プロセスには独自のメモリスペースがあります。擬似マルチスレッド:同じメモリ空間を共有して交互に実行するプロセスで複数の実行ストリームを作成します。マルチスレッドライブラリ:pthreadsなどのマルチスレッドライブラリを使用して、スレッドを作成および管理し、リッチスレッド操作機能を提供します。 Coroutine:タスクを小さなサブタスクに分割し、順番に実行する軽量のマルチスレッド実装。

rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

libvは2つです libvは2つです Apr 03, 2025 pm 08:03 PM

私はLua-Libuvというプロジェクトを開発しましたが、私の経験を喜んで共有しています。プロジェクトの当初の意図は、libuv(cで書かれた非同期I/Oライブラリ)を使用して、C言語を深く学習せずに簡単なHTTPサーバーを構築する方法を探ることです。 ChatGptの助けを借りて、http.cの基本コードを完了しました。永続的な接続を扱うとき、私は正しいタイミングでリソースを閉鎖し、解放することに成功しました。最初は、接続を閉じることでメインプログラムを終了するシンプルなサーバーを作成しようとしましたが、いくつかの問題がありました。ストリーミングを使用してデータのブロックを送信しようとしましたが、機能している間、これによりメインスレッドがブロックされます。最終的に、私の目標はC言語を深く学ぶことではなかったので、このアプローチをあきらめることにしました。最後に、i

c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション Apr 04, 2025 am 10:48 AM

c言語条件付きコンパイルは、コンパイル時間条件に基づいてコードブロックを選択的にコンパイルするメカニズムです。導入方法には、#IFおよび#ELSEディレクティブを使用して、条件に基づいてコードブロックを選択します。一般的に使用される条件付き式には、STDC、_WIN32、Linuxが含まれます。実用的なケース:オペレーティングシステムに従って異なるメッセージを印刷します。システムの数字数に応じて異なるデータ型を使用します。コンパイラに応じて、異なるヘッダーファイルがサポートされています。条件付きコンパイルにより、コードの移植性と柔軟性が向上し、コンパイラ、オペレーティングシステム、CPUアーキテクチャの変更に適応できます。

rust錆自明】はじめに rust錆自明】はじめに Apr 04, 2025 am 08:03 AM

1.0.1序文このプロジェクト(コードとコメントを含む)は、私の独学の錆の間に記録されました。不正確または不明確な声明があるかもしれませんが、謝罪してください。あなたがそれから利益を得るなら、それはさらに良いです。 1.0.2なぜRustrustは信頼性が高く効率的ですか? Rustは、CとCを同様のパフォーマンスであり、セキュリティが高くなり、CやCのようなエラーを確認するために頻繁な再コンパイルを必要としません。主な利点には、メモリセキュリティ(nullポインターの防止、ぶら下がりポインター、およびデータ競合の防止)が含まれます。スレッドセーフ(実行前にマルチスレッドコードが安全であることを確認してください)。未定義の動作を避けてください(例:境界のない配列、未知の変数、または解放されたメモリへのアクセス)。 Rustは、ジェネリックなどの最新の言語機能を提供します

MySQLを解決する方法は開始できません MySQLを解決する方法は開始できません Apr 08, 2025 pm 02:21 PM

MySQLの起動が失敗する理由はたくさんあり、エラーログをチェックすることで診断できます。一般的な原因には、ポートの競合(ポート占有率をチェックして構成の変更)、許可の問題(ユーザー許可を実行するサービスを確認)、構成ファイルエラー(パラメーター設定のチェック)、データディレクトリの破損(テーブルスペースの復元)、INNODBテーブルスペースの問題(IBDATA1ファイルのチェック)、プラグインロード障害(エラーログのチェック)が含まれます。問題を解決するときは、エラーログに基づいてそれらを分析し、問題の根本原因を見つけ、問題を防ぐために定期的にデータをバックアップする習慣を開発する必要があります。

C言語関数ライブラリはどこにありますか? C言語関数ライブラリを追加する方法は? C言語関数ライブラリはどこにありますか? C言語関数ライブラリを追加する方法は? Apr 03, 2025 pm 11:39 PM

C Language Functionライブラリは、さまざまな機能を含むツールボックスであり、さまざまなライブラリファイルに編成されています。ライブラリを追加するには、コンパイラのコマンドラインオプションを介して指定する必要があります。たとえば、GCCコンパイラは-Lオプションを使用して、ライブラリ名の略語が続きます。ライブラリファイルがデフォルトの検索パスの下にない場合は、-Lオプションを使用してライブラリファイルパスを指定する必要があります。ライブラリは、静的ライブラリと動的ライブラリに分けることができます。静的ライブラリはコンパイル時にプログラムに直接リンクされ、動的ライブラリは実行時にロードされます。

Linuxの5つの基本コンポーネントは何ですか? Linuxの5つの基本コンポーネントは何ですか? Apr 06, 2025 am 12:05 AM

Linuxの5つの基本コンポーネントは次のとおりです。1。カーネル、ハードウェアリソースの管理。 2。機能とサービスを提供するシステムライブラリ。 3.シェル、ユーザーがシステムと対話するインターフェイス。 4.ファイルシステム、データの保存と整理。 5。アプリケーション、システムリソースを使用して機能を実装します。

See all articles