Научите вас шаг за шагом компилировать PHP 8.3 и быстро запускать проект платформы ThinkPHP 8.0.
Научите вас шаг за шагом компилировать PHP 8.3 и быстро запускать проект платформы ThinkPHP 8.0.

В этой статье объясняется, как создать локальный компилировать PHP 8.3 и быстро построить ThinkPHP 8.0 Каркасное приложение. Благодаря этому уроку вы легко освоите PHP 8.3 изкомпилироватьи ThinkPHP 8.0 Быстро создайте свой PHP Web приложение.

Установить PHP8.3

скачать
Язык кода:javascript
копировать
wget https://www.php.net/distributions/php-8.3.1.tar.gz
tar -zxvf php-8.3.1.tar.gz

скачатьадрес:https://www.php.net/downloads

Установить пакеты зависимостей
Язык кода:javascript
копировать
sudo apt-get install libfcgi-dev libfcgi0ldbl libjpeg-turbo8-dev \
libmcrypt-dev libssl-dev libc-client2007e  \
libc-client2007e-dev libxml2-dev libbz2-dev  \
libcurl4-openssl-dev libjpeg-dev libpng-dev \
libfreetype6-dev libkrb5-dev libpq-dev \
libxml2-dev libxslt1-dev libzip-dev \
libsqlite3-dev libonig-dev pkg-config \
libxml2-dev libkrb5-dev  libssl-dev \
libbz2-dev libpng-dev  libfreetype6-dev \
libc-client2007e-dev libonig-dev \
libreadline-dev libxslt1-dev libzip-dev

Если зависимый пакет Установить не существует,Пожалуйста, передайте команду:apt-cache search freetype Просто найдите соответствующий пакет Установить Установить.

компилировать
Язык кода:javascript
копировать
cd php-8.3.1

./configure \
--prefix=/usr/local/php-8.3.1                     \
--with-config-file-path=/usr/local/php-8.3.1/etc   \
--with-zlib-dir \
--with-freetype \
--enable-mbstring \
--enable-soap \
--enable-calendar \
--with-curl \
--with-zlib \
--enable-gd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-exif \
--enable-bcmath \
--with-mhash \
--with-zip \
--with-pdo-mysql \
--with-mysqli \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-jpeg \
--with-openssl \
--with-fpm-user=www \
--with-fpm-group=www \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-ftp  \
--with-kerberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--enable-opcache \
--enable-intl \
--with-pear \
--enable-fpm
Установить
Язык кода:javascript
копировать
make
make install

Установитьбревно

Язык кода:javascript
копировать
~/build/php-8.3.1$ sudo make install
[sudo] password for www: 
Installing shared extensions:     /usr/local/php-8.3.1/lib/php/extensions/no-debug-non-zts-20230831/
Installing PHP CLI binary:        /usr/local/php-8.3.1/bin/
Installing PHP CLI man page:      /usr/local/php-8.3.1/php/man/man1/
Installing PHP FPM binary:        /usr/local/php-8.3.1/sbin/
Installing PHP FPM defconfig:     /usr/local/php-8.3.1/etc/
Installing PHP FPM man page:      /usr/local/php-8.3.1/php/man/man8/
Installing PHP FPM status page:   /usr/local/php-8.3.1/php/php/fpm/
Installing phpdbg binary:         /usr/local/php-8.3.1/bin/
Installing phpdbg man page:       /usr/local/php-8.3.1/php/man/man1/
Installing PHP CGI binary:        /usr/local/php-8.3.1/bin/
Installing PHP CGI man page:      /usr/local/php-8.3.1/php/man/man1/
Installing build environment:     /usr/local/php-8.3.1/lib/php/build/
Installing header files:          /usr/local/php-8.3.1/include/php/
Installing helper programs:       /usr/local/php-8.3.1/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php-8.3.1/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php-8.3.1/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.14
[PEAR] Console_Getopt - installed: 1.4.3
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.4.5
warning: pear/PEAR dependency package "pear/Archive_Tar" installed version 1.4.14 is not the recommended version 1.4.4
[PEAR] PEAR           - installed: 1.10.14
Wrote PEAR system config file at: /usr/local/php-8.3.1/etc/pear.conf
You may want to add: /usr/local/php-8.3.1/lib/php to your php.ini include_path
Installing PDO headers:           /usr/local/php-8.3.1/include/php/ext/pdo/
Конфигурационный файл

1、через командуphp -v Посмотреть версию PHP

Язык кода:javascript
копировать
/usr/local/php-8.3.1/bin/php -v
PHP 8.3.1 (cli) (built: Dec 25 2023 21:14:50) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.1, Copyright (c) Zend Technologies

2. Ядро php.ini Конфигурационный файл

Язык кода:javascript
копировать
cd /home/www/build/php-8.3.1

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

Уведомление: Блокировать, если файл не существует Nginx Отправьте запрос на серверную часть PHP-FPM модуль, Чтобы избежать атаки путем внедрения вредоносного скрипта. найти cgi.fix_pathinfo и измените его, чтобы он выглядел так:

Язык кода:javascript
копировать
cgi.fix_pathinfo=0

3、PHP-FPM процесс Служитьиз Конфигурационный файл php-fpm.conf

Язык кода:javascript
копировать
sudo mv /usr/local/php-8.3.1/etc/php-fpm.conf.default /usr/local/php-8.3.1/etc/php-fpm.conf 

4、PHP-FPM Расширять Конфигурационный файл www.conf

Язык кода:javascript
копировать
sudo mv /usr/local/php-8.3.1/etc/php-fpm.d/www.conf.default /usr/local/php-8.3.1/etc/php-fpm.d/www.conf 
Конфигурация пользователя и группы пользователей

После настройки

Язык кода:javascript
копировать
user = www
group = www
 
listen.owner = www
listen.group = www
listen.mode = 0660

ДаватьwwwРазрешения на назначение групп пользователей(Не обязательно)

Язык кода:javascript
копировать
chown www:www /opt/php-8.3.1/etc/php-fpm.d/www.conf

Измените порт, который прослушивает fpm

Язык кода:javascript
копировать
; listen = 127.0.0.1:9000  -- Он включен по умолчанию, добавьте впереди; Комментировать
listen = /var/run/php8.3.1-fpm.sock  -- добавьте эту строку
Создать файл системного блока

Далее мы найдем файл Создать файл системного блока, который используется для запуска и остановки демона PHP-FPM.

1. Добавьте услуги

Язык кода:javascript
копировать
vim /lib/systemd/system/php-8.3.1-fpm.service

Имеет следующее содержание:

Язык кода:javascript
копировать
[Unit]
Description=The PHP 8.3.1 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/usr/local/php-8.3.1/var/run/php-fpm.pid
ExecStart=/usr/local/php-8.3.1/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php-8.3.1/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

2、давать возможность Служитьи перезагрузиsystemd

Язык кода:javascript
копировать
sudo systemctl enable php-8.3.1-fpm.service
Created symlink /etc/systemd/system/multi-user.target.wants/php-8.3.1-fpm.service → /lib/systemd/system/php-8.3.1-fpm.service.

sudo systemctl daemon-reload

3、запускатьPHP-FPM Служить

Язык кода:javascript
копировать
sudo systemctl start php-8.3.1-fpm.service

4、ПроверятьPHP-FPM Служитьсостояние

Язык кода:javascript
копировать
sudo systemctl status php-8.3.1-fpm.service
● php-8.3.1-fpm.service - The PHP 8.3.1 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php-8.3.1-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-12-25 21:27:37 CST; 45s ago
 Main PID: 22472 (php-fpm)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/php-8.3.1-fpm.service
           ├─22472 php-fpm: master process (/usr/local/php-8.3.1/etc/php-fpm.conf)
           ├─22483 php-fpm: pool www
           └─22485 php-fpm: pool www

Dec 25 21:27:37 test-develop systemd[1]: Started The PHP 8.3.1 FastCGI Process Manager.

5. Автоматический запуск при загрузке

Язык кода:javascript
копировать
sudo systemctl enable php-8.3.1-fpm.service

Установите ThinkPHP8.0

чиновник Установитьдокумент:https://doc.thinkphp.cn/v8_0/setup.html

Уведомление: Поскольку здесь имеется несколько сред, при установке необходимо указать абсолютный путь PHP.

Установитьcomposer
Язык кода:javascript
копировать
wget https://getcomposer.org/download/latest-stable/composer.phar

Проверятьcomposer -v версии, появится следующий интерфейс, указывающий, что установка прошла успешно.

Язык кода:javascript
копировать
/usr/local/php-8.1/bin/php composer.phar -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.6.6 2023-12-08 18:32:26

Использовать источник изображения Alibaba Cloud

Язык кода:javascript
копировать
/usr/local/php-8.1/bin/php composer.phar config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Установите ThinkPHP8.0
Язык кода:javascript
копировать
/usr/local/php-8.1/bin/php composer.phar create-project topthink/think tp8.0

Creating a "topthink/think" project at "./tp8.0"
Installing topthink/think (v8.0.0)
  - Downloading topthink/think (v8.0.0)
  - Installing topthink/think (v8.0.0): Extracting archive
Created project in /home/www/build/tp8.0
Loading composer repositories with package information
Updating dependencies
Lock file operations: 14 installs, 0 updates, 0 removals
  - Locking league/flysystem (2.5.0)
  - Locking league/mime-type-detection (1.13.0)
  - Locking psr/container (2.0.2)
  - Locking psr/http-message (1.1)
  - Locking psr/log (3.0.0)
  - Locking psr/simple-cache (3.0.0)
  - Locking symfony/deprecation-contracts (v3.3.0)
  - Locking symfony/polyfill-mbstring (v1.28.0)
  - Locking symfony/var-dumper (v6.4.0)
  - Locking topthink/framework (v8.0.3)
  - Locking topthink/think-filesystem (v2.0.2)
  - Locking topthink/think-helper (v3.1.6)
  - Locking topthink/think-orm (v3.0.14)
  - Locking topthink/think-trace (v1.6)

Просмотр структуры каталогов установки

Язык кода:javascript
копировать
cd tp8.0

tree -L 1
.
├── app
├── composer.json
├── composer.lock
├── config
├── extend
├── LICENSE.txt
├── public
├── README.md
├── route
├── runtime
├── think
├── vendor
└── view
Конфигурация хоста Nginx
Язык кода:javascript
копировать
server {
    listen 80;
    server_name 121.128.128.128;
    set $root_path /home/www/build/tp8.0/public;
    root $root_path;
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=/$1 last;
            break;
        }
    }

    location ~ \.php$ {
        try_files $fastcgi_script_name =404;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php8.3.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_connect_timeout 10000;
        fastcgi_send_timeout 6000;
        fastcgi_read_timeout 6000;
    }

}

Получите доступ к IP-адресу общедоступной сети «Служить», например: http://121.128.128.128. , появление следующего интерфейса означает, что установка прошла успешно!

Просмотреть информацию об Установить PHP,существоватьpublicНовый файл каталогаtinywan.php

Язык кода:javascript
копировать
vim public/tinywan.php

Добавьте следующее, чтобы получить системную информацию из PHP

Язык кода:javascript
копировать
<?php
  
phpinfo();

Получите доступ к IP-адресу общедоступной сети «Служить», например http://121.128.128.128/tinywan.php,Проверять Установитьинформация

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose