Рубрики
Uncategorized

Скомпилируйте и установите среду LNMP в Debian 9 (Stretch)

Автор оригинала: David Wong.

I. Предисловие

Ранее моей средой разработки была Windows-10+PHP-7.1+Nginx-1.10+MariaDB-10.1.

В более поздней разработке необходимо больше использовать memcached, redis и другие NoSQL, но в Windows настройка затруднена, многие расширения PHP отсутствуют. DLL-файлы и расширения PHP в Windows компилируются сложнее.

Поэтому я перешел на Linux.

Сначала я искал, в основном Red Hat и Debian.

На основе Red Hat: Коммерческая версия, Centos, Fedora На основе Debian: Debian, Ubuntu

Я выбрал Debian 9, PHP-7.2, MariaDB-10.2, Nginx-1.13.

Требования

Общая последовательность установки, MariaDB > nginx > php , следующее программное обеспечение, имя библиотеки основано на Debian (Ubuntu).

2.1 Дополнительные библиотеки, необходимые для PHP:

## Lexical Parser for Source Code Requirements
apt install bison
## Source code is C program, need C compiler, pay attention to compiler version
apt install gcc-6
## C++ Compiler
apt install g++
## XML parsing library
apt install libxml2 libxml2-dev
## make cmake m4 autoconf
apt install make cmake m4 autoconf
## webp format, which can bring smaller images
apt install libwebp6 libwebp-dev
## JPEG format support
apt install libjpeg-dev
## PNG format support
apt install libpng-dev
## Free Open Source Font Engine
apt install libfreetype6 libfreetype6-dev
## SSL encryption library support (source code installs openssl, you can choose to use Debian package to install openssl)
apt install openssl
## SSH2 library (source installation)
apt install libssh2-1-dev
Mhash Library
apt install libmhash2
## zlib compression library (source installation)
apt install zlib1g zlib1g-dev
## PCRE regular expression library (source installation)
apt install libpcre3-dev libpcre3
## gzip
apt install gzip
## bz2
apt install libbz2-1.0 libbz2-dev
## new features of soduim php7.2 modern encryption standard
apt install libsodium-dev
## New features of argon2 php7.2 new encryption function, published by PHC (Password Hashing Competition)
apt install argon2 libargon2-0 libargon2-0-dev

2.2 Дополнительные библиотеки, требуемые Nginx

В основном их три: openssl, zlib, pcre, которые можно установить с помощью собственной библиотеки Debian или установки с исходным кодом. Я выбираю последнее, так что,

Конфликта с вышесказанным не будет, но причины будут затронуты позже.

2.3 Дополнительные библиотеки, требуемые MariaDB

## bison lexical analyzer
apt install bison
## libncurses: a text-based library for writing stand-alone terminals
apt install libncurses5 libncurses5-dev
## libevent-dev: an event library
apt install libevent-dev
## OpenSSL an encryption library
apt install openssl

III. Процесс установки

Устанавливайте в порядке MariaDB > Nginx > PHP. Перед установкой, пожалуйста, проверьте еще раз, что все дополнительные библиотеки, упомянутые выше, были установлены.

3.1 Создание Пользователя Системы

Зачем создавать пользователей? Ответ: Потому что после установки нам нужны эти программы только для системных служб (демона или других процессов, запущенных самостоятельно), и нам не нужно использовать определенную личность пользователя для их работы. То есть для создания системных учетных записей, а также групп системных пользователей.

groupadd -r mysql
useradd -r -g mysql -s /bin/false   -M mysql
mkdir /usr/local/data/mysql
chown -R mysql:mysql /usr/local/data/mysql 

Примечание значение параметра

Specific manuals can be pulled out through man group add or man user Radd

- R Create System Users or User Groups
- G Specifies the user group to which the user belongs
- s specifies the user login shell name, sh, bash, because it is a system user and does not need to set / bin / false or / usr / s bin / nologin
- M does not create user home directories

Аналогично, создайте nginx, php-fpm соответственно

groupadd -r php-fpm
useradd -r -g php-fpm -s /bin/false -M php-fpm

groupadd -r nginx
useradd -r -g nginx -s /bin/false -M nginx 

3.2 MariaDB

Установка MariaDB может быть немного громоздкой, не в обычном режиме make, а в режиме cmake.

Получить исходный код mariadb -10.2

wget http://mirror.jaleco.com/mariadb//mariadb-10.2.12/source/mariadb-10.2.12.tar.gz 
tar -zxvf mariadb-10.2.12.tar.gz
mkdir build-mariadb
cd build-mariadb
cmake ../ -DCMAKE_INSTALL_PREFIX=/opt/soft/mariadb-10.3.4 \
-DMYSQL_DATADIR=/var/data/mysql \
-DSYSCONFDIR=/etc \
-DWITHOUT_TOKUDB=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWIYH_READLINE=1 \
-DWIYH_SSL=system \
-DVITH_ZLIB=system \
-DWITH_LOBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DBUILD_LIBPROTOBUF_FROM_SOURCES=ON
make && make install 

Если Rm-rf CMakeCache.txt файлы

3.2.1 Конфигурация MariaDB

vim /etc/profile.d/mariadb.sh

добавить путь ЭКСПОРТА=$ПУТЬ:/opt/soft/mariadb-10.2/bin

source /etc/profile.d/mariadb.sh

cd /opt/soft/mariadb-10.2
scripts/mysql_install_db --user=mysql --datadir=/usr/local/data/mysql

Информация об успешном выводе:

Installing MariaDB/MySQL system tables in '/data/mysql' ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'./bin/mysqladmin' -u root password 'new-password'
'./bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:
'./bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.

You can start the MariaDB daemon with:
cd '.' ; ./bin/mysqld_safe --datadir='/data/maria'

You can test the MariaDB daemon with mysql-test-run.pl
cd './mysql-test' ; perl mysql-test-run.pl

Please report any problems at http://mariadb.org/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
Get Involved

копировать

cd /opt/soft/mariadb-10.2
cp support-files/my-large.cnf /etc/my.cnf

возможно

cp support-files/my-large.cnf /etc/mysql/my.cnf

Создание сценариев запуска системы (с использованием системы d)

cd /etc/systemd/system
vim mysqld.service 

[Unit]
Description=MariaDB Server
After=network.target

[Service]
ExecStart=/opt/soft/mariadb-10.2/bin/mysqld --defaults-file=/etc/mysql/my.cnf  --datadir=/usr/local/data/mysql --socket=/tmp/mysql.sock
User=mysql
Group=mysql
WorkingDirectory=/opt/soft/mariadb-10.2

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl restart mysqld.service
systemctl status mysqld.servie 

Если не запущен, используйте journalctl -xn возможно journalctl -xl Для просмотра сообщений об ошибках

Если вы хотите начать, пожалуйста, используйте systemctl, чтобы включить mysqld.service

настройка безопасности

$:mysql_secure_installation 

Enter current password for root (enter for none): Enter the current root password (no input)

Set root password? [Y/n] Set root password? (Yes/No)

New password: Enter the new root password

Re-enter new password: Confirm to enter root password

Password updated successfully! Password updated successfully

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

By default, the MariaDB installation has an anonymous user.
Allow anyone to log on to MariaDB without creating a user account.
The goal is to test only and install more smoothly.
You should delete their production environment before entering.

Remove anonymous users? [Y/n] Delete anonymous users? (Yes/No)

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Usually, root should only allow connections from localhost.
This ensures that other users cannot guess the root password from the network.

Disallow root login remotely? [Y/n] Root is not allowed to log in remotely? (Yes/No)

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

By default, MariaDB provides a database called "Test" that anyone can access.
This is also for testing purposes only and should be deleted before entering the production environment.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reloading the permission table will ensure that all changes made so far take effect immediately.

Reload privilege tables now? [Y/n] Now reload the permission table (yes/no)

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

All done! If you have completed the above steps, MariaDB installation should be safe now.

Thanks for using MariaDB!

На данный момент mariadb установлен, и вы можете просматривать сервис с помощью ps-aux | grep MySQL

Теперь проверьте это. корень mysql -u -p возможно mysql -h localhost -P 5001 -у шанечи вверх

3.3 Установка PHP

Установка PHP относительно проста, в основном выберите расширение, которое вы хотите установить, или функцию, которую вам нужно открыть.

иметь доступ к ./настроить --помогите Чтобы просмотреть параметры установки, предоставляемые исходной установкой

Некоторые встроенные функции PHP требуют включения или отключения, например php-fpm, для включения.

Некоторые расширения могут быть динамически загружены, называемые общим расширением, но чиновник также сказал, что не все расширения могут быть общими.

Получите исходный код: wget http://am1.php.net/distributions/php-7.2.1.tar.bz2 Декомпрессия:

tar -xvf php-7.2.1.tar.bz2
cd php-7.2.1
./configure --prefix=/opt/soft/php7.2 \
--with-config-file-path=/opt/soft/php7.2/etc \
--with-mysql-sock=/tmp/mysql.sock \
--with-openssl \
--with-mhash \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-pdo-pgsql=/opt/soft/pgsql \
--with-gd \
--with-iconv \
--with-zlib \
--enable-exif \
--enable-intl \
--enable-calendar \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-sockets \
--enable-ipv6 \
--with-bz2 \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl=/opt/soft/curl7.57--enable-debug \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-opcache \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-sodium \
--with-libxml-dir \
--with-password-argon2 \
--without-gdbm \
--with-pcre-regex \
--with-pcre-jit \
--enable-fast-install \
--enable-fileinfo

Для настройки Введите исходный файл. cp php.ini.разработка/opt/soft/php-7.2/php.ini Измените следующие разделы

extension_dir=/opt/soft/php-7.2/lib/php/extensions/no-debug-non-zts-20170718/
extension=mysqli
time_zone=PRC

В то же время добавьте файл конфигурации php-fpm, каталог установки etc/ ниже cp php-fpm.conf.по умолчанию php-fpm.conf и cp php.conf.d/www.conf.по умолчанию php.conf.d/www.conf

PHP-скрипт запуска FPM (системы) PHP очень человечен, в исходном каталоге /sapi/фпм Здесь вы можете найти его. php-fpm.service Файл, скопируйте в /etc/systemd/system/php-fpm.service в systemctl запустите php-fpm.service статус systemctl php-fpm.service В случае возникновения ошибки используйте journalctl-xn для просмотра конкретного сообщения об ошибке Запускать. systemctl включить php-fpm.service

3.4 Установка Исходного Кода Nginx

Компиляция и установка Nginx должны быть самыми простыми в средах LNMP

Во-первых, вам нужны три пакета исходных текстов, один zlib (библиотека сжатия), один PCRE (библиотека регулярных выражений) и один OpenSSL (библиотека шифрования, которая необходима, если вы хотите использовать HTTPS).

Конечно, если вы устанавливаете его через собственный менеджер пакетов debian , это можно опустить, но вы должны установить два, одно из которых-само программное обеспечение, а другое-библиотека разработки, как это. |/подходящая установка openssl openssl-dev

Заказ:

--configure --prefix=/opt/soft/nginx \
--user=nginx \
--group=nginx \
With - http_ssl_module\ is not turned on by default. If you need to use TLS, please bring this compilation with you.
--with-pcre=../pcre-8.41 \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.0g

Тогда? сделать и сделайте установку

Обратите внимание, что если вы устанавливаете zlib, pcre, openssl и соответствующие библиотеки разработки с использованием двоичных пакетов, вам не нужно указывать путь.

Для настройки: Запишите файл демона nginx или используйте системный инструмент vim/etc/systemd/system/nginx.service

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/soft/nginx/logs/nginx.pid
ExecStartPre=/opt/soft/nginx/sbin/nginx -t
ExecStart=/opt/soft/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Это можно найти на веб-сайте nginx и изменить в соответствии с вашими собственными потребностями. Обратите внимание, что путь изменен на собственный путь установки.

systemctl запускаем nginx.сервис Запустите Nginx systemctl, включите nginx.service Загрузиться

Помните, что если вы измените файл службы наполовину, вы должны сначала запустить его демон systemctl-перезагрузить Перезагрузить файлы демона. Затем запустите systemctl, запустите nginx.service Перезапустите службу.

Четыре, ДОБАВИТЬ

Сценарий установки ключа будет добавлен позже.

V. Список литературы

  1. Введение в системы
  2. CentOS 7.3 Компилирует и устанавливает MariaDB 10.2.6
  3. CentOS 7.3 Компилирует и устанавливает php7.1
  4. Зубр GNU
  5. GD-поддержка настройки PHP
  6. Аргон2
  7. Крипто-библиотека натрия (libsodium)”)
  8. получите код mariadb,создайте его,протестируйте
  9. Общие Инструкции По сборке
  10. Установка системных таблиц (mysql_install_db)”)
  11. “Составление MariaDB Из источника”
  12. проклятия
  13. CMake
  14. php-руководство пользователя
  15. НОВАЯ ФУНКЦИЯ PHP7.2
  16. Создание nginx из исходных текстов

Оригинал: “https://developpaper.com/compile-and-install-lnmp-environment-under-debian-9-stretch/”