Автор оригинала: 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. Список литературы
- Введение в системы
- CentOS 7.3 Компилирует и устанавливает MariaDB 10.2.6
- CentOS 7.3 Компилирует и устанавливает php7.1
- Зубр GNU
- GD-поддержка настройки PHP
- Аргон2
- Крипто-библиотека натрия (libsodium)”)
- получите код mariadb,создайте его,протестируйте
- Общие Инструкции По сборке
- Установка системных таблиц (mysql_install_db)”)
- “Составление MariaDB Из источника”
- проклятия
- CMake
- php-руководство пользователя
- НОВАЯ ФУНКЦИЯ PHP7.2
- Создание nginx из исходных текстов
Оригинал: “https://developpaper.com/compile-and-install-lnmp-environment-under-debian-9-stretch/”