当前位置:   article > 正文

Linux安装PHP环境,详细步骤以及常见问题解决方案

linux安装php环境

Linux安装PHP环境,详细步骤以及常见问题解决方案


1、下载安装包,这里安装php-7.4.22.tar.gz
2、上传到local并解压
  cd php-7.4.22
3、安装必备依赖
(如果yum源需要更新可以运行   yum -y update)

yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libzip gcc-c++

4、进行预编译
cd  /usr/local/php-7.4.22

  1. ./configure  \
  2. --prefix=/usr/local/php \
  3. --with-config-file-path=/usr/local/php/lib \
  4. --with-fpm-user=nginx \
  5. --with-fpm-group=nginx \
  6. --enable-fpm \
  7. --enable-opcache \
  8. --enable-inline-optimization \
  9. --disable-debug \
  10. --disable-rpath \
  11. --enable-shared \
  12. --enable-mysqlnd \
  13. --with-mysqli=mysqlnd \
  14. --with-pdo-mysql=mysqlnd \
  15. --enable-mysqlnd-compression-support \
  16. --with-iconv-dir \
  17. --with-zlib \
  18. --enable-xml \
  19. --disable-rpath \
  20. --enable-bcmath \
  21. --enable-shmop \
  22. --enable-sysvsem \
  23. --enable-inline-optimization \
  24. --with-curl \
  25. --enable-mbregex \
  26. --enable-mbstring \
  27. --enable-intl \
  28. --enable-ftp \
  29. --enable-gd \
  30. --enable-gd-jis-conv \
  31. --with-jpeg   \
  32. --with-freetype  \
  33. --with-openssl \
  34. --with-mhash \
  35. --enable-pcntl \
  36. --enable-sockets \
  37. --with-xmlrpc \
  38. --with-zip \
  39. --enable-soap \
  40. --with-gettext \
  41. --disable-fileinfo \
  42. --with-pear \
  43. --enable-maintainer-zts \
  44. --with-ldap=shared \
  45. --without-gdbm 

 
5、编译&&安装
make && make install

6、配置并启动

cd /usr/local/php/  #先进入安装目录
cp ./etc/php-fpm.conf.default ./etc/php-fpm.conf    #配置文件
vim /usr/local/php/etc/php-fpm.conf
将;pid = run/php-fpm.pid 前面的;分号删掉

 #配置文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default  /usr/local/php/etc/php-fpm.d/www.conf
cp /usr/local/php-7.4.22/php.ini-production /usr/local/php/lib/php.ini

修改php.ini配置文件

  1. max_execution_time = 300
  2. max_input_time = 600
  3. post_max_size = 80M
  4. max_file_uploads = 20
  5. date.timezone = Asia/Shanghai

7、配置启动服务

1、添加php-fpm服务启动脚本

vim  /lib/systemd/system/php-fpm.service

  1. [Unit]
  2. Description=php-fpm
  3. After=network.target
  4. [Service]
  5. Type=forking
  6. ExecStart=/usr/local/php/sbin/php-fpm ##需要注意修改自己的路径
  7. ExecStop=/bin/pkill -9 php-fpm
  8. PrivateTmp=true
  9. [Install]
  10. WantedBy=multi-user.target

2、     systemctl list-unit-files --type=service查看有没有php-fpm.service
         如果没有就是用systemctl daemon-reload重新加载,在使用以上命令查看

3、添加开机自启 systemctl enable php-fpm.service

------------------------------------------------


服务字段说明

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

-----------------------------------------------------------------------------

******************第二种方法**********************
//拷贝php-fpm脚本至/etc/init.d目录
cp /usr/local/php-7.4.22/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

//设置权限并启动php-fpm:
chmod 755 /etc/init.d/php-fpm
/etc/init.d/php-fpm start

// php-fpm以服务的方式启动、停止和重启:

##vim  /etc/init.d/php-fpm 
chkconfig  --add  /etc/init.d/php-fpm
service php-fpm start
service php-fpm stop
service php-fpm reload

设置php-fpm开机自启:
cp /usr/local/php-7.4.22/sapi/fpm/php-fpm.service  /usr/lib/systemd/system
   
 systemctl enable php-fpm

******************************************************


8、使用Nginx解析PHP

进入到nginx安装目录 cd /usr/local/nginx/ 

修改配置文件 vim ./conf/nginx.conf 


 server {
        listen       8088;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index index.php  index.html index.htm;
        }

修改路径
把scripts改为   document_root
 location ~ \.php$ {
           root            /usr/local/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

(1)增加index.php
在  /usr/local/nginx/html路径下增加index.php 文件进行测试

index.php内容如下
<?php echo phpinfo(); ?>


 (2)测试与mysql数据库连接


<?php
header("content-type:text/html;charset=utf-8");
$servername = "192.168.0.118";
$username = "root";
$password = "123";

// 创建连接
$conn = new mysqli($servername, $username, $password);

// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>


9、添加环境变量

  vim  /etc/profile

  export PATH=$PATH:'/usr/local/php/bin/'

  source /etc/profile


#############################################################################
                                                问题
#############################################################################

问题:
1、如果提示No package sqlite3  found问题
  先检查yum源  yum  search  sqlite    发现   sqlite-devel.x86_64   暂没有安装
  执行  sudo  yum  install  -y  sqlite-devel.x86_64

2、 No package 'oniguruma' found
    下载 oniguruma5php-6.9.8-1.el7.remi.x86_64.rpm  oniguruma5php-devel-6.9.8-1.el7.remi.x86_64.rpm
    这两个包(已下载在问题库包里)
    安装这两个包       yum  -y  localinstall   *.rpm
    然后再进入PHP目录 运行config就不报这个错误了
      


3、报   configure: error: Cannot find ldap.h
   解决办法:
    yum install openldap openldap-devel  -y

4、报错:configure: error: Cannot find ldap libraries in /usr/lib
    解决办法:
   cp -frp /usr/lib64/libldap* /usr/lib/

5、报
checking for libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0... no
configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:

No package 'libzip' found
No package 'libzip' found
No package 'libzip' found

  解决方法:
   检查是否安装过   libzip
   rpm   -q     libzip
   rpm  -q     libzip-devel
   如果有则卸载它,     yum   remove   libzip-devel    libzip
    
然后下载libzip-1.2.0.tar.gz(此包已经下载,在\Linux部署PHP\问题处理文件包下)
   cd  libzip-1.2.0
  ./configure
   make
   make install
   export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" 

启动
#cd /usr/local/php/sbin/
# ./php-fpm   #启动
#ps -ef|grep php-fpm  #查看启动状态

#############################################################################

脚本方式启动(备用)

  1. #!/bin/bash
  2. # php-fpm startup script for the php-fpm 
  3. # php-fpm version:7.4.11-alpha6
  4. # chkconfig: 2345  10  90
  5. # description: php-fpm is very good
  6. # processname: php-fpm
  7. # pidfile: /var/run/php-fpm.pid
  8. # config: /usr/local/php/etc/php-fpm.conf
  9.    
  10. php_command=/usr/local/php/sbin/php-fom
  11. php_config=/usr/local/php/etc/php-fpm.conf
  12. php_pid=/usr/local/php/var/run/php-fpm.pid
  13. RETVAL=0
  14. prog="php-fpm"
  15.    
  16. #start function
  17. php_fpm_start() {
  18.     /usr/local/php/sbin/php-fpm
  19. }
  20.    
  21. start(){
  22.     if [ -e $php_pid  ]
  23.     then
  24.     echo "php-fpm already start..."
  25.     exit 1
  26.     fi
  27.     php_fpm_start
  28. }
  29.    
  30. stop(){
  31.     if [ -e $php_pid ]
  32.     then
  33.     parent_pid=`cat $php_pid`
  34.     all_pid=`ps -ef | grep php-fpm | awk '{if('$parent_pid' == $3){print $2}}'`
  35.     for pid in $all_pid
  36.     do
  37.             kill $pid
  38.         done
  39.         kill $parent_pid
  40.     fi
  41.     exit 1
  42. }
  43.    
  44. restart(){
  45.     stop
  46.     start
  47. }
  48.    
  49. # See how we were called.
  50. case "$1" in
  51. start)
  52.         start
  53.         ;;
  54. stop)
  55.         stop
  56.         ;;
  57. restart)
  58.         stop
  59.         start
  60.         ;;
  61. status)
  62.         status $prog
  63.         RETVAL=$?
  64.         ;;
  65. *)
  66.         echo $"Usage: $prog {start|stop|restart|status}"
  67.         exit 1
  68. esac
  69. exit $RETVAL

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/53661
推荐阅读
相关标签
  

闽ICP备14008679号