PHP快速开发笔记

目录

一、环境配置

1.安装PHP

(1)安装依赖

(2)下载安装包

(3)配置

(4)编译安装

(5)添加 php-fpm 配置文件

(6)添加 www.conf 配置文件

(7)添加php到环境变量

(8)启动php-fpm

(9)设置开机自启

(10)安装扩展依赖

        _① pdo_odbc

        _② redis

2.nginx配置

3.安装composer

4.Laravel框架

1.部署Laravel项目

2.Laravel Debugbar

3.安装Laravel-admin

(1)安装

(2)启动

(3)创建控制器

二、常见问题

PHP支持CURL

file_get_contents这个php函数抓取数据常见错误解决方法

file_put_contents报错

新增pdo_mysql扩展报错


一、环境配置

1.安装PHP

(1)安装依赖

(centos)

yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libzip-devel pcre-devel sqlite-devel

如果提示libmcrypt-devel找不到执行以下:

yum -y install epel-release

yum update

yum -y install libmcrypt-devel

安装re2c(re2c是一个将正则表达式转化成基于C语言标识的预处理器。 )

yum -y install git automake gcc+ gcc-c++ libtool

git clone https://github.com/skvadrik/re2c.git re2c

cd re2c

mkdir -p m4

./autogen.sh && ./configure --prefix=/usr && make

make install

re2c -v

安装oniguruma(正则表达式)是一种模式匹配工具,它允许用户使用一定的规则来匹配字符串中的内容。

wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz tar -zxf oniguruma-6.9.4.tar.gz

cd oniguruma-6.9.4

./autogen.sh && ./configure --prefix=/usr

make && make install

(2)下载安装包

(window)https://windows.php.net/downloads/releases/php-7.4.33-Win32-vc15-x64.zip

cd /home/app/soft/php

wget https://codeload.github.com/php/php-src/tar.gz/refs/tags/php-7.4.33

或  

wget https://www.php.net/distributions/php-7.4.33.tar.gz(推荐

解压&&进入目录

(3)配置

  如果没有configure文件,生成configure文件

            ./buildconf 或者 autoconf

(初次配置)


./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -enable-bcmath --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mhash --with-openssl --enable-bcmath --enable-soap --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --with-bz2 --with-readline --with-libxml -enable-gd --enable-xml --enable-mbregex --enable-ftp --with-xmlrpc --with-zip --without-pear --enable-session --with-jpeg --with-freetype


error:configure: error: Please reinstall readline - I cannot find readline.h
》 yum -y install readline-devel 

(增加模块)

-方式1 重新编译

        同初次配置

-方式2 新增扩展

 cd {源码目录}/ext/curl

 phpize

./configure

make clean

make

make install

#修改php.ini 文件

添加扩展extension=openssl

如果修改了php.ini的ext路径需要将生产的so文件移动到此路径下!

 如:修改了php.ini ext="/usr/local/php/ext"

  cp /usr/local/lib/php/extensions/no-debug-non-zts-20230831/mysqli.so /usr/local/php/ext/mysqli.so

编译的时候已经加载的模块,不需要在php.ini中配置;

(4)编译安装

make && make install

make命令安装:

yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++ 

   collect2: error: ld returned 1 exit status make: *** [sapi/cli/php] Error 1

        vi Makefile

        查找  EXTRA_LIBS = ...  在结尾加上-lcrypt -liconv、保存退出

        然后make clean  再编译

找到之前的php7.3.3包下php.ini-production,到/usr/local/php/etc下,并改名为php.ini

命令为:

cp php.ini-production /usr/local/php/etc/php.ini

原包sapi/fpm/init.d.php-fpm 文件拷贝到系统配置 /etc/init.d 目录下并重命名为 php-fpm

命令为:

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm

(5)添加 php-fpm 配置文件

php安装目录下的 /usr/local/php/etc/php-fpm.conf.default 文件拷贝同目录下并重命名为 php-fpm.conf

命令为:

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

(6)添加 www.conf 配置文件

将php安装目录下的 /usr/local/php/etc/php-fpm.d/www.conf.default文件拷贝同目录下并重命名为 www.conf

命令为:

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

(7)添加php到环境变量

创建并打开文件php.sh

编辑文件 vim /etc/profile.d/php.sh

添加内容:export PATH=$PATH:/usr/local/php/bin/:/usr/local/php/sbin/

点击ESC 在最下边命令输入行中输入:wq保存退出

source /etc/profile.d/php.sh 使用该命令使系统环境变量生效

(8)启动php-fpm

/usr/local/php/sbin/php-fpm 或者service php-fpm start

启动的端口号默认为9000 (netstat -tnl 命令可以查看端口号)

如果要修改端口号:则编辑www.conf文件

vi etc/php-fpm.d/www.conf 将listen = 127.0.0.1:9000的9000改为需要的端口号就可以 重启php,关闭PHP为pkill php-fpm 启动为上边已经说过的命令再查看端口号已经发生了改变.

php-fpm启动用户默认nobody。可以修改www.conf文件,不可修改为root用户。

新增用户组和用户

groupadd www

useradd -g www wwww

user = www

group = www

#启动进程的帐户和组

(9)设置开机自启

修改系统配置目录下的 php-fpm 文件可执行权限

chmod +x /etc/init.d/php-fpm

> 将系统配置目录下的 `php-fpm` 添加到 `系统服务`

chkconfig --add php-fpm

> 设置 `php-fpm` `系统服务` 为开机启动

chkconfig php-fpm on

(10)安装扩展依赖
        _① pdo_odbc

进入源码ext/pdo_odbc目录

phpize

./configure
 make && make install

(报错。无unixODBC之类的,先安装再重新进入PHP源码目录)
  wget http://www.unixodbc.org/unixODBC-2.3.4.tar.gz

tar zxvf unixODBC-2.3.4.tar.gz

./configure --prefix=/usr/local/unixODBC --includedir=/usr/local/include --libdir=/usr/local/lib -bindir=/usr/local/bin --sysconfdir=/usr/local/etc

make && make install

        _② redis

(Window)下载5.2.1版本的dll文件即可;

          PECL :: Package :: redis

wget https://github.com/phpredis/phpredis/archive/4.3.0.tar.gz

解压&进入编译安装

 /usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config #配置

make && make install

2.nginx配置

vim /usr/local/nginx/conf/nginx.conf

server{

    listen 182;

    server_name 127.0.0.1;

    index index.php index.html index.htm default.php default.htm default.html;

    root /usr/local/php/www;

    add_header X-Frame-Options "SAMEORIGIN";

    add_header X-Content-Type-Options "nosniff";

   charset utf-8;

    location / {

        try_files $uri $uri/ /index.php?$query_string;

    }

    location = /favicon.ico { access_log off; log_not_found off; }

    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {

        fastcgi_pass 127.0.0.1:9001;

        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

        include fastcgi_params;

    }

    location ~ /\.(?!well-known).* {

        deny all;

    }

}

重启nginx;

新建/usr/local/php/www/phpinfo.php访问验证;

3.安装composer

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

【镜像设置】

-设置阿里镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

-设置中国镜像

composer config -g repo.packagist composer Packagist/Composer中国全量镜像

-官方镜像

composer config -g repo.packagist composer https://packagist.org

-国内镜像

composer config -g repo.packagist composer Packagist/Composer中国全量镜像

-腾讯云

composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/

4.Laravel框架

1.部署Laravel项目

现在, 通过在终端运行以下命令来安装Laravel:

把下面的testPro 替换成你想要的。

composer create-project --prefer-dist laravel/laravel testPro 8.6.12  (指定版本)(success

【OR】

composer create-project --prefer-dist laravel/laravel testPro  

如果报PHP扩展错误,但实际已安装扩展.

1.更新镜像源:

composer config -g repo.packagist composer https://packagist.org

2.添加参数

  composer create-project --prefer-dist --ignore-platform-reqs  laravel/laravel testPro

3.直接下载安装包解压

http://laravel.p2hp.com/laravel10.28.0.zip

修改项目目录权限,是的php-fpm启动进程有权限使用!

访问:

http://10.1.2.100:182/testPro/public/index.php

2.Laravel Debugbar

给Laravel 项目安装调试工具

1、进入项目目录 ,执行一下命令:

composer require barryvdh/laravel-debugbar

2、在你的项目config/app.php页面中

providers数组中加入

Barryvdh\Debugbar\ServiceProvider::class,

在aliases 数组中加入

'Debugbar' => Barryvdh\Debugbar\Facade::class,

ok 调试模块安装完毕

3.安装Laravel-admin
1安装

进入Laravel项目目录;

首先确保安装好了laravel,并且数据库连接设置正确。

composer require encore/laravel-admin:1.*

然后运行下面的命令来发布资源:

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

在该命令会生成配置文件config/admin.php,可以在里面修改安装的地址、数据库连接、以及表名,建议都是用默认配置不修改。

然后运行下面的命令完成安装:

php artisan admin:install

(2)启动

nohup php artisan serve --host 0.0.0.0 >run.log &

必须用内置web服务启动!尚且不知如何直接使用nginx代理.

http://ip:8000/admin 即可访问!

默认账号:admin/admin

(3)创建控制器

php artisan admin:make UserController --model=App\\Models\\User

其他操作参考官网:

https://laravel-admin.org/docs/zh/1.x/quick-start

二、常见问题

PHP支持CURL

(windows)

1.extension=php_curl

2.copy libssh2.dll from C:\php into C:\apache\bin

3.copy libcrypto-*.dll and libssl-*.dll from C:\php into C:\apache\bin (if it doesn't exist)

file_get_contents这个php函数抓取数据常见错误解决方法

(windows有效):找到php.ini文件,修改如下:

1、找到extension=php_openssl.dll这一行,去掉前面的‘;’

2、找到allow_url_include = Off 这一行,将Off改为 On,然后重启服务器。

(linux下的PHP)

第一种:安装openssl模块,安装好了以后就可以访问了。

第二种:stream_context_create方法

以下代码允许你使用file_get_contents获取https页面内容:

$url= 'https://blog.csdn.net/qq_41606390';

$arrContextOptions=array(

"ssl"=>array(

"verify_peer"=>false,

"verify_peer_name"=>false,

),

);

$content = file_get_contents($url, false, stream_context_create($arrContextOptions));

第三种:使用curl函数替换file_get_contents

function getSslPage($url) {

/* 执念、很无奈-CSDN博客 */

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);// 跳过证书检查

curl_setopt($ch, CURLOPT_HEADER, false);//获取Header

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_REFERER, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$result = curl_exec($ch);

curl_close($ch);

return $result;

}

file_put_contents报错

请检查目录权限

新增pdo_mysql扩展报错

解决方法:在pdo_mysql文件夹下新建ext子文件夹,并把pdo_mysql文件夹的父文件夹下的mysqlnd复制到刚新建的文件夹下,再次运行。

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨中漫步t2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值