백엔드 개발 PHP 문제 리눅스 PHP 디버깅 환경을 설정하는 방법

리눅스 PHP 디버깅 환경을 설정하는 방법

Dec 08, 2021 am 09:32 AM
linux

Linux PHP 디버깅 환경을 설정하는 방법: 1. MySQL을 다운로드하고 설치합니다. 2. php-fpm을 활성화하고 포트 9000을 수신합니다. 3. PHP의 압축을 풀고 컴파일하고 설치합니다. 4. 구성 파일을 수정하고 Nginx를 설치합니다.

리눅스 PHP 디버깅 환경을 설정하는 방법

이 기사의 운영 환경: ubuntu 16.04 시스템, PHP 버전 7.1, Dell G3 컴퓨터.

Linux PHP 디버깅 환경을 설정하는 방법은 무엇입니까?

Linux PHP 개발 환경이 빠르게 구축됩니다

구축된 환경은 LNMP입니다:

1. MySQL 설치

저는 Ubuntu를 사용하므로 apt 소스를 사용하고, deb 파일을 다운로드합니다. 그런 다음 새 설치 문서를 순서대로 따릅니다. a. apt 라이브러리를 업데이트합니다. c. MySQL을 실행합니다.

다운로드:

https://dev.mysql.com/downloads/repo/apt/
로그인 후 복사

2, PHP

-fpm here , 포트 9000에서 수신 대기합니다.

관련 문서:

https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install
로그인 후 복사
a 다운로드

http://php.net/manual/zh/install.unix.nginx.php
로그인 후 복사
로컬로 다운로드할 이미지를 선택하거나 다운로드 주소를 얻은 다음 wget으로 로컬로 다운로드하세요

b 압축을 풀고 컴파일하고 설치하세요

https://www.php.net/downloads.phpwget https://www.php.net/distributions/php-7.1.33.tar.gz
로그인 후 복사
설치 디렉터리가 있도록 --prefix를 추가해야 합니다

순서대로 실행할 때 발생하는 문제에는 pcre, zlib 및 libxml2가 존재하지 않는 문제가 포함됩니다. 그런 다음 Baidu 공식 웹 사이트로 직접 이동하여 최신 버전의 tar.gz 형식 설치 패키지를 다운로드한 다음 압축을 풀고 컴파일하고 설치하세요.

swoole 입문 매뉴얼

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
로그인 후 복사
https://linkeddestiny.gitbooks.io/easy-swoole/content/book/chapter01/install.html
로그인 후 복사
c 설치가 완료된 후 구성 파일(공식 문서는 여기에 복사됨), 모든 줄을 잊을 수 없습니다.

./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
로그인 후 복사

Interlude: 파일이 존재하지 않도록 하려면 Nginx가 전송되지 않도록 합니다. 악성 스크립트 주입 공격을 피하기 위해 클라이언트 측 백엔드 PHP-FPM 모듈에 요청

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
로그인 후 복사

저는 vim에 익숙하지 않기 때문에 sudoatom이나 sudosublime과 같은 그래픽 인터페이스 소프트웨어로 여는 것을 권장합니다.

d, 다음은 PHP 매뉴얼과 동일하지 않습니다. 동일한 내용은 다음과 같습니다. (다음 함수는 fpm이 PHP-FPM 사용자 그룹 및 사용자를 읽고 구성하고 수신 포트 9000을 열도록 하는 것입니다.)

실제로 매뉴얼에는 /usr/local/etc/php-fpm.conf에 모든 그룹 구성 옵션에 사용자가 없다고 되어 있는데, 수동으로 추가하면 파일을 찾을 수 없다고 보고하게 되는데, 이는 매우 우울한 일입니다. 이렇게

웹 사용자 만들기:

vim /usr/local/php/lib/php.ini
修改参数为:cgi.fix_pathinfo=0
로그인 후 복사

Open

php-fpm.conf

groupadd www-data
useradd -g www-data www-data
로그인 후 복사
결론 찾기:
vim /usr/local/php/etc/php-fpm.conf
로그인 후 복사

NONE을 실제 경로로 변경:

include=NONEl/etc/php-fpm.d/*.conf
로그인 후 복사

그런 다음 사용자 그룹 및 사용자 정보를 추가하세요. 일반 일치 구성 파일에:

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
로그인 후 복사

Enable FPM

; 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
로그인 후 복사

e, 성공 여부 확인:

/usr/local/bin/php-fpm
로그인 후 복사

TCP 9000 LISTEN이 표시되면 구성에 성공했다면 9000 포트가 수신 대기 중이 아니라는 뜻입니다. 다시 시도해 보세요.

3. Nginx 설치

Nginx 중국어 문서를 살펴보겠습니다. 사기입니다

netstat -tln | grep 9000
로그인 후 복사

너무 오래된 버전입니다. PHP5 등을 설치할 때 항상 다양한 문제가 있거나 매개변수가 너무 많으면 적어도 설치하기가 쉽지 않습니다. 삭제하려면 apt를 사용해야 합니다. 그래서 가장 간단한 방법으로 설치했습니다. 즉, 다운로드하고 컴파일하고 설치하는 것입니다

Download

http://www.nginx.cn/installhttp://www.nginx.cn/doc/setup/nginx-ubuntu.html
로그인 후 복사

좋아하는 버전을 선택하고 다운로드하세요

http://nginx.org/en/download.html
로그인 후 복사

구성 중에 다음과 같은 소프트웨어를 묻는 메시지가 표시되면 zlib이 존재하지 않으므로 Baidu에서 tar 패키지를 다운로드하고 압축을 풀고 설치하세요. 예

설치 디렉터리 답변:

설치 후 /usr/local/nginx에

구성 파일: /usr/local/nginx/conf /nginx.conf

가상 호스트 파일 디렉터리: /usr/local/nginx/ html

실행 파일: /usr/local/nginx/sbin/nginx

구성 파일에서 해야 할 일은 .index.html b. .php 규칙을 준수하는 경우 9000 포트

포트에 넘겨서 사용하세요. 기본 nginx:80 php:9000 가상 호스트 디렉터리는 기본 /usr/local/nginx/html

을 사용합니다.

총 두 곳이 구성되었습니다:

tar -zxvf 
cd 
./configure --prefix=/usr/local/nginx
make 
make install
로그인 후 복사
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;#}
로그인 후 복사

nginx

html 디렉터리 생성 시작 test.php 브라우저에 localhost/text.php를 입력하면 구성이 다음과 같이 표시됩니다.

PHP 확장 설치:

Reference Manual

sudo ./nginx -s reopen
로그인 후 복사

실행 프로세스는 다음과 같습니다. 컴파일 중에 사용된 PHP 소스 코드를 입력합니다. 패키지의 확장자가 해당 확장 디렉터리에 들어가면 phpize가 다음을 생성합니다. 설정 파일, ./configure, make && make install

http://php.net/manual/zh/install.pecl.phpize.php
로그인 후 복사

autoconf 오류가 있을 수 있습니다. 우분투라면 직접 실행한 후 lib.php/ini로 가서 확장 기능을 추가하세요.

cd /home/username/php7.0.29/ext
cd curl
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
로그인 후 복사

Linux 간단하고 일반적으로 사용되는 지침:

1 루트 디렉터리에서 httpd.conf 파일을 찾습니다.

sudo apt-get install autoconf
로그인 후 복사
2 /usr/src 디렉터리(하위 디렉터리 포함)에 파일을 표시합니다. Magic이 포함된 줄, 이 검색은 파일의 내용입니다:

find / -name httpd.conf
로그인 후 복사

3. VIM 편집기 검색 내용

grep -r magic /usr/src
로그인 후 복사
4. php-fpm 프로세스가 닫힙니다

尾行模式:/content Enter
로그인 후 복사

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视频教程

위 내용은 리눅스 PHP 디버깅 환경을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL에 루트로 로그인 할 수 없습니다 MySQL에 루트로 로그인 할 수 없습니다 Apr 08, 2025 pm 04:54 PM

Root로 MySQL에 로그인 할 수없는 주된 이유는 권한 문제, 구성 파일 오류, 암호 일관성이 없음, 소켓 파일 문제 또는 방화벽 차단입니다. 솔루션에는 다음이 포함됩니다. 구성 파일의 BAND-ADDRESS 매개 변수가 올바르게 구성되어 있는지 확인하십시오. 루트 사용자 권한이 수정 또는 삭제되어 재설정되었는지 확인하십시오. 케이스 및 특수 문자를 포함하여 비밀번호가 정확한지 확인하십시오. 소켓 파일 권한 설정 및 경로를 확인하십시오. 방화벽이 MySQL 서버에 연결되는지 확인하십시오.

C 언어 조건부 편집 : 초보자가 실제 응용 프로그램에 대한 자세한 안내서 C 언어 조건부 편집 : 초보자가 실제 응용 프로그램에 대한 자세한 안내서 Apr 04, 2025 am 10:48 AM

C 언어 조건부 컴파일은 컴파일 시간 조건을 기반으로 코드 블록을 선택적으로 컴파일하는 메커니즘입니다. 입문 방법에는 다음이 포함됩니다. #IF 및 #ELSE 지시문을 사용하여 조건에 따라 코드 블록을 선택합니다. 일반적으로 사용되는 조건부 표현에는 STDC, _WIN32 및 LINUX가 포함됩니다. 실제 사례 : 운영 체제에 따라 다른 메시지를 인쇄합니다. 시스템의 숫자 수에 따라 다른 데이터 유형을 사용하십시오. 컴파일러에 따라 다른 헤더 파일이 지원됩니다. 조건부 컴파일은 코드의 휴대 성과 유연성을 향상시켜 컴파일러, 운영 체제 및 CPU 아키텍처 변경에 적응할 수 있도록합니다.

Linux의 5 가지 기본 구성 요소는 무엇입니까? Linux의 5 가지 기본 구성 요소는 무엇입니까? Apr 06, 2025 am 12:05 AM

Linux의 5 가지 기본 구성 요소는 다음과 같습니다. 1. 커널, 하드웨어 리소스 관리; 2. 기능과 서비스를 제공하는 시스템 라이브러리; 3. 쉘, 사용자가 시스템과 상호 작용할 수있는 인터페이스; 4. 파일 시스템, 데이터 저장 및 구성; 5. 시스템 리소스를 사용하여 기능을 구현합니다.

MySQL을 해결하는 방법을 시작할 수 없습니다 MySQL을 해결하는 방법을 시작할 수 없습니다 Apr 08, 2025 pm 02:21 PM

MySQL 시작이 실패하는 데는 여러 가지 이유가 있으며 오류 로그를 확인하여 진단 할 수 있습니다. 일반적인 원인에는 포트 충돌 (포트 점유 체크 및 구성 수정), 권한 문제 (서비스 실행 사용자 권한 실행), 구성 파일 오류 (파라미터 설정 확인), 데이터 디렉토리 손상 (데이터 복원 또는 테이블 공간 재건), IBDATA 테이블 공간 문제 (IBDATA1 파일 확인), 플러그로드 (확인 오류 로그)가 포함됩니다. 문제를 해결할 때 오류 로그를 기반으로 문제를 분석하고 문제의 근본 원인을 찾고 문제를 방지하고 해결하기 위해 정기적으로 데이터를 백업하는 습관을 개발해야합니다.

MySQL은 Android에서 실행할 수 있습니다 MySQL은 Android에서 실행할 수 있습니다 Apr 08, 2025 pm 05:03 PM

MySQL은 Android에서 직접 실행할 수는 없지만 다음 방법을 사용하여 간접적으로 구현할 수 있습니다. Android 시스템에 구축 된 Lightweight Database SQLite를 사용하여 별도의 서버가 필요하지 않으며 모바일 장치 애플리케이션에 매우 적합한 작은 리소스 사용량이 있습니다. MySQL 서버에 원격으로 연결하고 데이터 읽기 및 쓰기를 위해 네트워크를 통해 원격 서버의 MySQL 데이터베이스에 연결하지만 강력한 네트워크 종속성, 보안 문제 및 서버 비용과 같은 단점이 있습니다.

특정 시스템 버전에서 MySQL이보고 한 오류에 대한 솔루션 특정 시스템 버전에서 MySQL이보고 한 오류에 대한 솔루션 Apr 08, 2025 am 11:54 AM

MySQL 설치 오류에 대한 솔루션은 다음과 같습니다. 1. MySQL 종속성 라이브러리 요구 사항이 충족되도록 시스템 환경을주의 깊게 확인하십시오. 다른 운영 체제 및 버전 요구 사항이 다릅니다. 2. 오류 메시지를주의 깊게 읽고 프롬프트 (예 : 라이브러리 파일 누락 또는 부족한 권한)에 따라 종속성 설치 또는 Sudo 명령 사용과 같은 해당 조치를 취합니다. 3. 필요한 경우 소스 코드를 설치하고 컴파일 로그를주의 깊게 확인하십시오. 그러나 일정량의 Linux 지식과 경험이 필요합니다. 궁극적으로 문제를 해결하는 핵심은 시스템 환경 및 오류 정보를 신중하게 확인하고 공식 문서를 참조하는 것입니다.

다운로드 후 MySQL을 설치할 수 없습니다 다운로드 후 MySQL을 설치할 수 없습니다 Apr 08, 2025 am 11:24 AM

MySQL 설치 실패의 주된 이유는 다음과 같습니다. 1. 권한 문제, 관리자로 실행하거나 Sudo 명령을 사용해야합니다. 2. 종속성이 누락되었으며 관련 개발 패키지를 설치해야합니다. 3. 포트 충돌, 포트 3306을 차지하는 프로그램을 닫거나 구성 파일을 수정해야합니다. 4. 설치 패키지가 손상되어 무결성을 다운로드하여 확인해야합니다. 5. 환경 변수가 잘못 구성되었으며 운영 체제에 따라 환경 변수를 올바르게 구성해야합니다. 이러한 문제를 해결하고 각 단계를 신중하게 확인하여 MySQL을 성공적으로 설치하십시오.

MySQL을 설치할 때 누락 된 종속성 문제를 해결하는 방법 MySQL을 설치할 때 누락 된 종속성 문제를 해결하는 방법 Apr 08, 2025 pm 12:00 PM

MySQL 설치 실패는 일반적으로 종속성 부족으로 인해 발생합니다. 솔루션 : 1. 시스템 패키지 관리자 (예 : Linux Apt, YUM 또는 DNF, Windows VisualC 재분배 가능)를 사용하여 Sudoaptinstalllibmysqlclient-dev와 같은 누락 된 종속성 라이브러리를 설치하십시오. 2. 오류 정보를주의 깊게 확인하고 복잡한 종속성을 하나씩 해결하십시오. 3. 패키지 관리자 소스가 올바르게 구성되어 네트워크에 액세스 할 수 있는지 확인하십시오. 4. Windows의 경우 필요한 런타임 라이브러리를 다운로드하여 설치하십시오. 공식 문서를 읽고 검색 엔진을 잘 활용하는 습관을 개발하면 문제를 효과적으로 해결할 수 있습니다.

See all articles