linux PHP调试环境的搭建方法:1、下载安装MysqL;2、开启PHP-fpm,监听9000端口;3、进行PHP解压编译安装;4、修改配置文件并安装Nginx即可。
本文操作环境:ubuntu 16.04系统,PHP7.1版,Dell G3电脑。
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
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
sudo pkill PHP-fpm
5、MysqLI安装
./configure –with-PHP-config=/usr/local/PHP/bin/PHP-config –with-MysqLi=/usr/bin/MysqL_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
#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教程》
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。