Пожалуйста, используйте этот документ для изучения и осторожно используйте его в производственной среде
Об этом много написано в Интернете Windows возможно Linux Установка ниже LNMP Много учебных пособий. Но я все равно решаю внедрять его шаг за шагом, даже несмотря на то, что я устанавливал его в разных системах в соответствии с онлайн-учебниками N Много раз. Почему? Потому что я не понимаю. Я не знаю, зачем мне нужно это системное программное обеспечение и зачем я добавляю эти скомпилированные элементы? В чем смысл? Только копирование и вставка.
Некоторые предложения:
- Компиляция и установка-это только начало создания среды. Не пытайтесь решить все проблемы на этом этапе
- Продолжайте компиляцию по требованию, минимизируйте установку, выявляйте проблемы и решайте их
- Отвечает за каждый используемый скомпилированный параметр
- Держитесь подальше от копирования и вставки, вы можете быть сохранены
- Избегайте компиляции и установки программного обеспечения, которого вы совсем не знаете
Мы ставим Laravel Беги!
Список программных документов
Документ здесь является базовым программным документом, не очень полным. Некоторые программные документы содержатся в содержимом.
- Nginx
- Mysql
- Редис
- Php
- Свул
системные требования
#View CentOS version [[email protected] source]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [[email protected] source]# cat /proc/version Linux version 3.10.0-957.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018
Список программного обеспечения
В системе есть встроенная команда curl, поэтому мы выбираем CURL Загрузить программное обеспечение curl-O xxx , если у пакета проблемы с распаковкой, это не потому, что tar-zxf Я не могу распаковать пакет. Это означает, что пакет не полностью загружен или это всего лишь пустой пакет по сетевым причинам. Решение состоит в том, чтобы удалить его и загрузить снова. Кроме того, чтобы предотвратить миграцию веб-сайтов ресурсов, пожалуйста, используйте параметры curl-OL . -L : перенаправление трассировки Загрузка иностранных ресурсов происходит слишком медленно. Пожалуйста, используйте Xunlei для загрузки, а затем используйте scp Загрузка на сервер, общие параметры:
-рПереданным объектом является каталог-pУкажите порт, по умолчанию 22
Сценарий использования:
scp <порт сервера> <пользователь сервера>@ сервера>:<путь к серверу>/<файл сервера> <локальный путь>Это ресурс сервера загрузки. Ресурс будет сохранен в<локальный путь>。 сервера>:<путь к серверу>/<файл сервера> <локальный путь>Это ресурс сервера загрузки. Ресурс будет сохранен в<локальный путь>
Коллекции программного обеспечения
Почему ты говоришь это первым? Чтобы предоставить вам тот , на который вам не нужно обращать внимание snmp | Системная зависимость , просто скомпилируйте и установите метод lnmp .
принцип
Обычно мы устанавливаем переменные среды после установки программного обеспечения, чтобы мы могли использовать программное обеспечение с удовольствием и удобством. Если мы не используем переменные среды, мы перейдем в каталог установки, чтобы найти исполняемые файлы и выполнить команды.
Если существует несколько версий программного обеспечения, мы установим их по разным путям, чтобы мы могли перейти к разным версиям каталогов и запустить их. Если у вас установлено и используется слишком много версий PHP, это будет очень знакомо.
Конечно инструменты разработки yum groupinstall Они работают одинаково, но масштаб Может быть установлен по требованию, загрузка по требованию несравнима.
Этот инструмент делает то же самое. Он выполняет две задачи: во-первых, устанавливает различные версии программного обеспечения, а во-вторых, загружает файлы глобальных переменных, созданные во время установки, в систему при их использовании. Хотя существует три разных способа использования, принцип в основном один и тот же.
Вы можете просмотреть включить (файл глобальной переменной, созданный после установки инструментария) содержимое файла:
[[email protected] bld]# cat /opt/rh/devtoolset-8/enable # General environment variables export PATH=/opt/rh/devtoolset-8/root/usr/bin${PATH:+:${PATH}} export MANPATH=/opt/rh/devtoolset-8/root/usr/share/man:${MANPATH} export INFOPATH=/opt/rh/devtoolset-8/root/usr/share/info${INFOPATH:+:${INFOPATH}} export PCP_DIR=/opt/rh/devtoolset-8/root # Some perl Ext::MakeMaker versions install things under /usr/lib/perl5 # even though the system otherwise would go to /usr/lib64/perl5. export PERL5LIB=/opt/rh/devtoolset-8/root//usr/lib64/perl5/vendor_perl:/opt/rh/devtoolset-8/root/usr/lib/perl5:/opt/rh/devtoolset-8/root//usr/share/perl5/vendor_perl${PERL5LIB:+:${PERL5LIB}} # bz847911 workaround: # we need to evaluate rpm's installed run-time % { _libdir }, not rpmbuild time # or else /etc/ld.so.conf.d files? rpmlibdir=$(rpm --eval "%{_libdir}") # bz1017604: On 64-bit hosts, we should include also the 32-bit library path. if [ "$rpmlibdir" != "${rpmlibdir/lib64/}" ]; then rpmlibdir32=":/opt/rh/devtoolset-8/root${rpmlibdir/lib64/lib}" fi export LD_LIBRARY_PATH=/opt/rh/devtoolset-8/root$rpmlibdir$rpmlibdir32${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export LD_LIBRARY_PATH=/opt/rh/devtoolset-8/root$rpmlibdir$rpmlibdir32:/opt/rh/devtoolset-8/root$rpmlibdir/dyninst$rpmlibdir32/dyninst${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} # duplicate python site.py logic for sitepackages pythonvers=2.7 export PYTHONPATH=/opt/rh/devtoolset-8/root/usr/lib64/python$pythonvers/site-packages:/opt/rh/devtoolset-8/root/usr/lib/python$pythonvers/site-packages${PYTHONPATH:+:${PYTHONPATH}} export PKG_CONFIG_PATH=/opt/rh/devtoolset-8/root/usr/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
краткое введение
Коллекции программного обеспечения предоставляют вам возможность создавать, устанавливать и использовать несколько версий программного обеспечения в одной и той же системе, не влияя на общесистемные установленные пакеты.
устанавливать
yum install centos-release-scl
Воспользуйся
- Список установленных коллекций программного обеспечения
scl --список Включить сбор программного обеспечения: четыре способа (три в документе, другой)
- Форма команды
действие scl software_collection_1 software_collection_2 'команда --аргумент' - Форма оболочки
scl включить software_collection_1 software_collection_2 bash. Речь идет о повторном открытии для васоболочки, которая загружает переменные среды установленного им программного обеспечения. - Прямое использование
scl включить software_collection_1 'perl --версия' Постоянно добавляйте DTS в свою среду разработки
- Форма команды
Инструкции по использованию приведены в этой статье
Этот инструмент управления не был известен в начале, чтобы решить mysql Время компиляции gcc Версия слишком низкая, чтобы знать. Только в mysql Используется во время компиляции, а не где-либо еще. Дело не в том, что этот инструмент не прост в использовании, это просто для того, чтобы показать вам больше о нашем использовании. yum , scl Вы не видите проблемы с зависимостями, когда используете его. Вы обнаружите, что средство действительно ароматное! Когда системе требуется какая-либо зависимость в наборе инструментов, вы можете решить эту зависимость с помощью вышеуказанных четырех способов использования.
Рекомендуется использовать Особенно при установке зависимого программного обеспечения, о котором вы мало что знаете , например: gcc , после чего следует процесс обновления GCC с помощью SCL
Перед началом установки мы создаем трех пользователей: www |/web mysql И соответствующие группы пользователей php-fpm nginx | mysql Используйте оставайтесь Linux При установке служб создавайте пользователей и группы пользователей для служб, насколько это возможно, чтобы облегчить управление этими службами. Например, задайте разрешения для каталогов и файлов, к которым могут обращаться службы
groupadd www groupadd web groupadd mysql useradd -r -g mysql -s /bin/false mysql useradd -r -g www -s /bin/false www useradd -r -g web -s /bin/false web
Интерпретация параметров:
-gУказанная группа-sУстановить оболочку/bin/ложьЭто относится к невозможности доступа к системным ресурсам с этим пользователем, включаялогин,sftp,ftpОжидание/usr/sbin/nologinОграничить только вход пользователя
-rСистемная учетная запись: по умолчанию домашний каталог отсутствует, и идентификатор uid не будет превышать 1000, то есть 0-999. Без добавления-rУчетная запись пользователя будет создана,UIDПо умолчанию из1000Во-первых, по умолчанию существует домашний каталог. Вы можете использовать-MЗапретить создание домашнего каталога
Дружественные советы: После установки всех следующих служб не спешите запускать, сначала измените конфигурацию, а затем запустите. В противном случае, если вы измените его после запуска, вам также может потребоваться очистить файлы по умолчанию, созданные службой. LNMP Как правило, элементами конфигурации, которые по умолчанию должны генерировать файлы, являются либо каталог журнала, либо каталог хранилища данных.
Nginx
Давайте потренируемся и установим в соответствии с примером, приведенным в документе по установке. Команда выглядит следующим образом:
./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=../pcre-8.43 \
--with-zlib=../zlib-1.2.11Пакеты PCRE и zlib необходимо загружать локально
Описание функций PCRE (с официального сайта)
задает путь к источникам библиотеки PCRE. Дистрибутив библиотеки (версии 4.4 — 8.43) необходимо загрузить с сайта PCRE и извлечь. Остальное делает nginx ./настройте и сделайте. Библиотека необходима для поддержки регулярных выражений в директиве location и для модуля ngx_http_rewrite_module.
Описание функции Zlib (с официального сайта)
задает путь к источникам библиотеки zlib. Дистрибутив библиотеки (версии 1.1.3 — 1.2.11) необходимо загрузить с сайта zlib и извлечь. Остальное делает nginx ./настройте и сделайте. Библиотека необходима для модуля ngx_http_gzip_module.
Примечание при загрузке nginx Требуемая версия
сценарий настройки
#Unzip and enter tar -zxf nginx-1.16.1.tar.gz tar -zxf pcre-8.43.tar.gz tar -zxf zlib-1.2.11.tar.gz cd nginx-1.16.1 #Perform compilation [[email protected] nginx-1.16.1]# ./configure --sbin-path=/usr/local/nginx/nginx \ --conf-path=/usr/local/nginx/nginx.conf \ --pid-path=/usr/local/nginx/nginx.pid \ --with-http_ssl_module \ --with-pcre=../pcre-8.43 \ --with-zlib=../zlib-1.2.11 #View nginx? Error? 1 checking for OS '+' Linux 3.10.0-957.el7.x86 × 64 × 64 × 64 + signs have typesetting problems and are enclosed in double quotation marks checking for C compiler ... not found ./configure: error: C compiler cc is not found #Recompile #View nginx? Error? 2 ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=option. #Recompile #Make & & make install [[email protected] nginx-1.16.1]# make && make install #This indicates that the installation is OK: make [1]: leaving directory ` / root / source / nginx-1.16.1 '
До сих пор мы будем Nginx После компиляции и установки, параметры выборки компиляции не очень соответствуют нашей производственной среде, потому что все настроено в каталог. При развертывании в рабочей среде мы стараемся как можно больше различать каталоги, чтобы облегчить обслуживание, поэтому мы используем Nginx Параметры компиляции по умолчанию. По умолчанию вы можете настроить следующий каталог установки (укажите следующих пользователей и группы пользователей):
./configure --prefix=/usr/local/nginx --user=web --group=web --with-http_ssl_module --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11 make && make install #File directory after installation drwxr-xr-x. 2 root root 4096 Sep 2 23:04 conf drwxr-xr-x. 2 root root 40 Sep 2 23:04 html drwxr-xr-x. 2 root root 6 Sep 2 23:04 logs drwxr-xr-x. 2 root root 19 Sep 2 23:04 sbin
Для получения дополнительных параметров компиляции мы можем использовать ./configure --help См. По некоторым причинам, таким как открытие другой функции nginx , нам необходимо перекомпилировать, шаги следующие:
- Затем непосредственно войдите в каталог извлеченных пакетов и выполните команду
make clean - еще раз
./настройка ххх сделать && сделать установку
nginx Для команды запуска службы, пожалуйста, поймите: /usr/локальный/nginx/sbin/nginx -h
Возникшие проблемы
NGINX_ERROR_1
./настройка: ошибка: c-компилятор cc не найденyum install -y gcc-c++Этот пакет поддерживает компиляциюCиC++программы, предотвращает наличие кодаC++Кода Википедия:- ССАГПЗ
NGINX_ERROR_2
NginxОткрытopensslНо для этого требуется установка системыopensslреализацияyum install-y openssl openssl-разработкаВикипедия:- OpenSSL
Пакет разработки предназначен в основном для разработки, включая, по крайней мере, следующие две вещи:
- Файл заголовка
- Библиотека ссылок
Некоторые из них также содержат документацию по разработке или демонстрационный код. с
glibиglib-develНапример: Если вы устанавливаете на основеglibРазработки программы, нужно только установитьglibСумка подойдет. Но если вы собираетесь скомпилировать егоglibИсходный кодXXX), требуется установкаglib-devel(XXX-devil) В общем, мы не используем программное обеспечение, а устанавливаем его напрямуюXXX-devel
тест
Установка на основе компиляции по умолчанию (feiyashi)
запуск
Значение чтения по умолчанию указывается во время компиляции
NginxКонфигурационный файл. Путь к файлу конфигурации не указан. По умолчанию файлconf/nginx.conf. Если вы хотите изменить файл конфигурации, пожалуйста, используйте-cПараметры:/usr/local/nginx/sbin/nginx -c/usr/local/nginx/conf/nginx.confДоступ запрещен через IP – доступ сервера. Метод обработки следующий: Просмотр состояния брандмауэра:
Отключить:
systemctl остановить firewalld.service(обратите внимание на производственную среду, вы должны выбрать включение80Порт) Посетите еще раз!
PHP
сценарий настройки
- Как правило, если нет особой ситуации, мы откроем его
php-fpm - Мы не можем гарантировать , что нам нужна только одна версия
php, поэтому при создании каталога установки вы обычно указываете версию в качестве каталога установки, например:/usr/local/php/7.3/ - Многие люди могут подумать, что в моем проекте используется много расширений. На данном этапе компиляции и установки, что я могу сделать, если проект не запускается? Не бойтесь перекомпилировать или установить его, если он отсутствует. Настаивать Строить по требованию, устанавливать по требованию
[[email protected] source]# tar -zxf php-7.3.9.tar.gz [[email protected] source]# cd php-7.3.9 [[email protected] php-7.3.9]# ./configure --prefix=/usr/local/php/7.3 --enable-fpm --with-fpm-user=www --with-fpm-group=www [[email protected] php-7.3.9]# make && make install # PHP_ERROR_1 configure: error: libxml2 not found. Please check your libxml2 installation. #Recompile #There is a thank you for using PHP. It means that there is no problem in compiling. Continue make && make install #The installation PDO headers appear. / usr / local / PHP / 7.3/include/php/ext/pdo/ indicating that the installation is successful
Возникшие проблемы
- PHP_ERROR_1
настройка: ошибка: libxml2 не найден. Пожалуйста, проверьте вашу установку libxml2.Прямая установка, не забудьте установить пакет разработкиyum install-y libxml2 libxml2-develустановкаlibxml2Система подсказывает мне, что я уже существую, ноphpОшибка, возвращенная во время компиляции, описание Пакет зависимостей необходимо установить при компиляции и установкеdevelEdition
Настройки Php-fpm
Мы по очереди решаем следующие задачи:
Решить
PHP_FPMИсполняемый файл не найден- Время компиляции плюс
--sbindir=/usr/локальный/php/7.3/sbinвозможно--sbindir=/usr/локальный/php/7.3/bin(единое управление)
- Время компиляции плюс
Решить
PHP_FPMЕго можно отключить только командой Kill (рекомендуется, чтобы вы понимали управление процессом) и перезапустить
Для настройки
- Сначала установите
php.iniЕсли вы не добавляете--with-config-путь к файлу, скопируйтеphp.ini-разработкуphp.ini-производствоreachphpПуть к файлу конфигурации по умолчанию, доступ к которому можно получить черезphp –ini См.Об этих двухiniРазличия между файлами описаны в файле конфигурации. Ключевые слова: - Об этом файле
Настройтеphp-fpm.confВ каталоге установки/usr/local/php/7.3/и т. Д./Есть следующий.php-fpm.conf.по умолчаниюСделайте копию и переименуйте ееphp-fpm.conf - cp php-fpm.conf.по умолчанию php-fpm.conf
Настройкаwww.confВ каталоге установки/usr/local/php/7.3/etc/php-fpm.d/Есть следующий.www.conf.defaultСделайте копию и переименуйте ееwww.conf
Крепление на диск
Проще говоря, речь идет о хранении кода, многим людям нравится помещать код в домашний каталог, что не очень хорошо. Не имеет значения, используется ли он одним человеком, но сервером управляют многие люди, поэтому мы обычно создаем отдельный файл для хранения. Кроме того, лучше смонтировать файл на отдельный диск, что удобно, скажем, для резервного копирования, и не иметь дело с системными файлами.
#Check for free disks [[email protected] conf]# fdisk -l Disk /dev/sda: 549.8 GB, 549755813888 bytes, 1073741824 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x0000e7dc Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 1073741823 535821312 8e Linux LVM Disk /dev/sdb: 549.8 GB, 549755813888 bytes, 1073741824 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-swap: 4294 MB, 4294967296 bytes, 8388608 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-home: 490.7 GB, 490695819264 bytes, 958390272 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Вы можете увидеть мой /dev/sdb Он не используется для монтажа. Давайте смонтируем его следующим образом: Я не буду говорить о разделе. Я найду учебник для себя
- Новая точка монтирования
mkdir/данные mkfs.ext4/dev/sdbФорматмонтировать/dev/sdb/данныемонтироватьСм.
UUIDизмените
/etc/fstab, добавьте в конце следующее содержимое, запустите машину и автоматически смонтируйтесоздание каталогов
- останься
index.phpЗапись в файлphpinfo(); phpinfo();
тест
Испытание на установку
запуск
php-fpmтестnginx && php-fpmтест Настройка одногосервера, использование профиляlaradockСредаlaravel.conf.примерСледующий:
Создайте
upstream.confДокументы для унифицированного управленияphp-fpmСсылка, балансировка нагрузкиУстановите
vhostКаталог и изменитеnginx.confВhttp {}Добавьте следующую конфигурацию в нижней части модуля- оставайтесь
vhostСоздайте в папкеnginx_php_test.confФайл, вверхуnginxВставьте конфигурацию в - Привязать локально
хосты|/имя ip-сервераНапример,192.168.2.41 nginx_php.testПосетите - nginx_php.test
Посмотреть журнал -
На данный момент тест завершен
Редис
красный-это Установка относительно проста. Просто следуйте инструкциям на странице загрузки
[[email protected] redis-5.0.5]# make test cd src && make test make[1]: Entering directory `/root/source/redis-5.0.5/src' CC Makefile.dep make[1]: Leaving directory `/root/source/redis-5.0.5/src' make[1]: Entering directory `/root/source/redis-5.0.5/src' You need tcl 8.5 or newer in order to run the Redis test make[1]: *** [test] Error 1 make[1]: Leaving directory `/root/source/redis-5.0.5/src' make: *** [test] Error 2 yum install -y tcl
Чтобы узнать о TCL, пожалуйста, перейдите по этой ссылке Пункты внимания :
- Пожалуйста, прочтите
README.mdВ документации содержится множество инструкций по установке и учебных пособий. редисЕсли вы хотите указать каталог установки во время компиляции, выполнитеmake ПРЕФИКС=/некоторые/другие/каталог установкиredisЕсть сценарий установки, и документация также очень понятнаMake install просто установит двоичные файлы в вашей системе, но не будет настраивать сценарии инициализации и файлы конфигурации в соответствующем месте. Это не необходимо, если вы хотите просто немного поиграть с Redis, но если вы устанавливаете это правильно для производственной системы, у нас есть скрипт, делающий это для систем Ubuntu и Debian:
Скрипт задаст вам несколько вопросов и настроит все, что вам нужно для правильного запуска Redis в качестве фонового демона, который снова запустится при перезагрузке системы.c
Какова его функция? Я выполнил для вас несколько шагов раньше времени (создана куча онлайн-руководств по установке для копирования redis.conf в etc, о чем я не хочу говорить).:
redisЗапуск и остановка сервисов
Mysql
Адрес загрузки Почему вы выбрали именно это? Потому что нам нужно скомпилировать и установить из исходного кода. Centos Его нет в списке, поэтому выберите общие. Наконец, выбираются два пакета. Один пакет содержит то, чего мы не знаем, чистую версию. Скачайте чистую версию. Руководство по установке исходного кода MySQL на официальном сайте , Я предлагаю вам прочитать его еще раз, потому что в Baidu мы обнаружили беспомощную вещь:
Механизмы InnoDB, MyISAM, СЛИЯНИЯ, ПАМЯТИ и CSV являются обязательными (всегда компилируются на сервере) и не должны устанавливаться явно.
В документе ясно указано, что эти механизмы баз данных должны быть установлены принудительно. В Интернете есть множество настроек cmake Параметра для запуска руководства по установке этих четырех движков. Если вам нужно отключить движок по умолчанию или установить новый движок, я думаю, вы можете задать параметры.
Зависимая установка
Это является предварительным условием официального сайта MySQL. Давайте кратко поговорим об этом здесь.
- Рекомендуемое использование
GNU makeСоответствующая команда –gmakeКомпиляция. Вы можете узнать, что вас интересуетcmake make makeИх история, разные, сценарии использования (вот яма, описанная ниже). - Нужен cmake, Википедия. Официальный адрес загрузки официальный учебник по компиляции и установке Будьте осторожны:
CMake загрузился. А теперь беги, сделай.Рекомендуется использоватьсделать Нужна поддержка, Википедия
- Первый способ: Скачайте и распакуйте самостоятельно,
сделайтеНастройка времениcmakeпараметр-С > открыть = < указать каталог после распаковки > - Второй способ:
сделатьНастройка времениcmakeпараметр-Скачать? - с кем? Загрузка = < укажите путь к хранилищу после автоматической загрузки >
- Первый способ: Скачайте и распакуйте самостоятельно,
- Нам нужны ncurses, Википедия. Эта библиотека уже существует в системе, но нет версии для разработки, то есть
ncurses-develЗаказ:yum install-y ncurses-devel mysqlСкомпилированный документ с параметрами установки для
сценарий настройки
tar -zxf mysql-8.0.17.tar.gz cd mysql-8.0.17 MKDIR BLD ා create a directory to store compiled files (at first, I didn't believe it, there were many files indeed) cd bld #Here we can add another compilation parameter, mysqlx ﹣ UNIX ﹣ addr & MySQL ﹣ UNIX ﹣ addr #Because the default socket file location of MySQL is in / TMP / directory, but the MySQL configuration file is in / var / lib / MySQL / directory for consistency. Of course, you can also modify the configuration file. #As for mysqlx, you can search for the keyword dwith ﹣ mysqlx on the page of compiling parameters, which is explained below. Cmake.. - ddownload? Boot = 1 - dwith? Boot = < specify the storage path after automatic download > - dmysqlx? UNIX? Addr = file? Name - dmysql? UNIX? Addr = file? Name Make & & make install ා the - J parameter is strongly recommended, otherwise it will be slow #From official documents # Postinstallation setup shell> cd /usr/local/mysql shell> mkdir mysql-files shell> chown mysql:mysql mysql-files shell> chmod 750 mysql-files shell> bin/mysqld --initialize --user=mysql shell> bin/mysql_ssl_rsa_setup shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server
Возникшие проблемы
Cmake не установлен. Объяснено в разделе установка зависимостей
[[email protected] bld]# cmake .. -- Running cmake version 2.8.12.2 CMake Warning at CMakeLists.txt:43 (MESSAGE): Please use cmake3 rather than cmake on this platform -- Please install cmake3 (yum install cmake3) CMake Error at CMakeLists.txt:73 (CMAKE_MINIMUM_REQUIRED): CMake 3.5.1 or higher is required. You are running version 2.8.12.2 -- Configuring incomplete, errors occurred!
Ncurses не установлен Объяснено в разделе установка зависимостей
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
ССАГПЗ Устаревшая Версия
CMake Error at cmake/os/Linux.cmake:59 (MESSAGE): GCC 5.3 or newer is required (-dumpversion says 4.8.5) Call Stack (most recent call first): CMakeLists.txt:424 (INCLUDE) -- Configuring incomplete, errors occurred! See also "/root/source/mysql-8.0.17/bld/CMakeFiles/CMakeOutput.log".
Отражение:
ССАГПЗЕсли версия слишком высока, используйте более низкую версию доGCCЕсть ли проблема с скомпилированным программным обеспечением? Если вам интересно, вы можете протестировать егоGCCМало кто знает об этом. Я думаю, что при компиляции и установке существует много скрытых опасностей, поэтому Не рекомендуется устанавливать сборку . Если вы заинтересованы, пожалуйста, изучите эту коллекцию программного обеспечения
Опять же, при компиляции программного обеспечения существуют риски, с которыми вы не знакомы. Пожалуйста, будьте осторожны
SCL(Коллекции программного обеспечения)Обновите GCCgccВ этом наборе инструментов для разработчиков, если вы не хотите устанавливать весь набор инструментов для GCC, пожалуйста, используйтеyum search devtoolset-8Затем установите перечисленные пакеты, например:Вот статья о том, что такое коллекции программного обеспечения и как их использовать
Скомпилируйте и установите официальные документы. В документах есть пять шагов. Пожалуйста, прочтите их внимательно
- Скачиваем, распаковываем, заходим в каталог программного обеспечения, скачиваем последнюю версию
9.2(пожалуйста, обратите внимание на производственную среду). реализация
./contrib/download_prerequisitesПакеты зависимостей для загрузки-это несколько библиотек зависимостей, упомянутых в официальных документах:Библиотека MPFR версии 2.4.2 (или более поздней) Библиотека MPC версии 0.8.1 (или более поздней) Библиотека isl версии 0.15 или более поздней. Библиотека zstd.
- Создать каталог компиляции
mkdir gcc-сборка&&cd gcc-сборка ../настройка --префикс=/usr/локальный/gcc/9.2.0,c++ --отключить-мультилиб–включить-проверку=выпускДобавьте некоторые проверки, все в порядке–отключить-проверкуСгенерированный компилятор не выполняет дополнительных проверок во время компиляции–enable-languages=c,c++НастройкаgccПоддерживаемые языки программирования–disable-multilibОтмена компиляции многоцелевой библиотеки (отмена компиляции 32-разрядной библиотеки)префиксРекомендуется добавить параметр, иначе вы не знаете путь компиляции и установкисделать && сделать установкуПредлагаемое увеличение-jПараметры действительно медленныеОбновление динамической библиотеки GCC (резервное копирование для производственной среды) динамический соединитель Википедия Сведения о ldconfig
Сообщение о возможных ошибках
- Газета не может его найти.
ссагпзПожалуйста, выйдите из терминала и снова войдите в систему или напрямую выполните команду source ~/. Bashrc. Эти два принципа одинаковы сделать установкуОшибка: На официальном форуме есть описание этой проблемы, но решения нет:После тестирования выясняется, что это не проблема с версией, и причина этой проблемы в том, что библиотека динамических ссылок не была обновлена.
Ошибка посадки
Ошибка сегментацииЭта ошибка вызвана: Официальный совет: мы используем пистолет, чтобыХорошая программа для создания. Хотя некоторые платформы поставляются со своими собственными реализациями make, настоятельно рекомендуется использовать GNU make 3.75 или выше. Возможно, он уже доступен в вашей системе как gmake. GNU make доступен с http://www.gnu.org/software/m…
А затем посмотрите данные и узнайте
centos 7вGNU makeА именноgmake, поэтому я используюgmakeСкомпилированный и, наконец, выполненныйmysql-uroot-pВремена сейчас неподходящие. Позже использовалосьсделатьКомпиляция не является ошибкой Но когда я прочитал информацию о версиях gmake и make, это было так же запутанно:
- Скачиваем, распаковываем, заходим в каталог программного обеспечения, скачиваем последнюю версию
Для настройки
Измените по мере необходимости
/etc/my.cnf。, Чтобы подчеркнуть один момент, пока этоmysqlПожалуйста, установите группу пользователей какmysqlВ противном случае это может привести кmysqlСбою выполненияИнициализация каталога данных
bin/mysqld --инициализацияРекомендуется внимательно прочитать документ, чтобы понять: во время процесса инициализацииmysqlЧто было сделано? Каков пароль учетной записи по умолчанию? Каковы параметры для инициализации? Почему не удалась инициализация? Дружественный совет: первоначальный пароль указан в журнале, а конкретный документзапуск
База данных входа в систему
Измените пароль по умолчанию
тест
[[email protected] mysql]# ps -ef | grep mysql root 12396 1 0 Sep05 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/bogon.pid
Здесь, mysql Установка завершена
Википедия и другие материалы
zlib mbstring автоконф
установите composer
#You can link the 'PHP' executable to '/ usr / local / bin' or add the 'PHP' executable path to the environment variable #The following error reports may be that XX function is not enabled and XX extension is not installed. I won't explain. #There is no CD command in the command, the path changes after bash name [[email protected] website]# /usr/local/php/7.3/bin/php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" Warning: copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1 Warning: copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1 Warning: copy(https://install.phpcomposer.com/installer): failed to open stream: No such file or directory in Command line code on line 1 [[email protected] php-7.3.9]# make clean find . -name \*.gcno -o -name \*.gcda | xargs rm -f find . -name \*.lo -o -name \*.o | xargs rm -f find . -name \*.la -o -name \*.a | xargs rm -f find . -name \*.so | xargs rm -f find . -name .libs -a -type d|xargs rm -rf rm -f libphp7.la sapi/cli/php sapi/cgi/php-cgi sapi/fpm/php-fpm modules/* libs/* #OpenSSL nginx has been talked about when compiling, not much here [[email protected] php-7.3.9]# ./configure --prefix=/usr/local/php/7.3 --enable-fpm --with-fpm-user=www --with-fpm-group=www --sbindir=/usr/local/php/7.3/bin --with-config-file-path=/usr/local/php/7.3/etc --with-openssl [[email protected] php-7.3.9]# make && make install [[email protected] website]# /usr/local/php/7.3/bin/php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" [[email protected] website]# /usr/local/php/7.3/bin/php composer-setup.php Downloading... Composer (version 1.9.0) successfully installed to: /data/website/composer.phar Use it: php composer.phar Some settings on your machine may cause stability issues with Composer. If you encounter issues, try to change the following: The zlib extension is not loaded, this can slow down Composer a lot. If possible, install it or recompile php with --with-zlib A php.ini file does not exist. You will have to create one. If you can not modify the ini file, you can also run `php -d option=value` to modify ini values on the fly. You can use -d multiple times. #Zlib is missing, add -- with zlib on the compiled item. Zlib Wikipedia link above [[email protected] php-7.3.9]# make clean [[email protected] php-7.3.9]# ./configure --prefix=/usr/local/php/7.3 --enable-fpm --with-fpm-user=www --with-fpm-group=www --sbindir=/usr/local/php/7.3/bin --with-config-file-path=/usr/local/php/7.3/etc --with-openssl --with-zlib [[email protected] php-7.3.9]# make && make install [[email protected] website]# /usr/local/php/7.3/bin/php composer-setup.php All settings correct for using Composer Downloading... Composer (version 1.9.0) successfully installed to: /data/website/composer.phar Use it: php composer.phar [[email protected] website]# /usr/local/php/7.3/bin/php -r "unlink('composer-setup.php');" #Global installation, which means to add it to the environment variable, so that it can be used by the whole system [[email protected] website]# mv composer.phar /usr/local/bin/composer [[email protected] website]# composer -v Do not run Composer as root/super user! See https://getcomposer.org/root for details ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.9.0 2019-08-02 20:55:32
установите Laravel
[[email protected] website]# composer config -g repo.packagist composer https://packagist.phpcomposer.com [[email protected] website]# composer create-project --prefer-dist laravel/laravel blog Installing laravel/laravel (v6.0.1) - Installing laravel/laravel (v6.0.1): Loading from cache Created project in blog > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - laravel/framework v6.0.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system. - laravel/framework v6.0.0 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system. - laravel/framework 6.x-dev requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system. - Installation request for laravel/framework ^6.0 -> satisfiable by laravel/framework[6.x-dev, v6.0.0, v6.0.1]. #Missing mbstring extension [[email protected] php-7.3.9]# ./configure --prefix=/usr/local/php/7.3 --enable-fpm --with-fpm-user=www --with-fpm-group=www --sbindir=/usr/local/php/7.3/bin --with-config-file-path=/usr/local/php/7.3/etc --with-openssl --with-zlib --enable-mbstring [[email protected] php-7.3.9]# make clean [[email protected] php-7.3.9]# make && make install [[email protected] website]# rm -rf blog/ [[email protected] website]# composer create-project --prefer-dist laravel/laravel blog #Laravel version 6.0 and below may report a problem that curl cannot find at this stage. Don't worry, read on #Create a server in the nginx Vhost directory (that is, add a xx.conf file), and modify the server name self laravel.test #Pay attention to naming: general format, < Enterprise Name | project name > < framework name > < development environment >. Conf, for example: self ﹤ laravel ﹤ test.conf is easy to manage. Later logs, database names, etc. also want to be named in the same way. Server name I suggest that you name it after enterprise name project name framework name development environment. #Link mysql, create a database create database self? Laravel? Test character set utf8mb4 collate utf8mb4? Unicode? CI. I suggest you follow the name of nginx conf file, and there is no requirement for existing projects. #Modify. Env file #There is no make: auth command after laravel 6.0. Please execute composer require laravel / UI & & PHP artican UI Vue -- auth #PHP artican migrate performs data migration [[email protected] blog]# php artisan migrate Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = alone_laravel_test and table_name = migrations and table_type = 'BASE TABLE')
pdo-mysql Диск не установлен: Позвольте мне кратко объяснить здесь php Драйвер базы данных: pdo да php Уровень абстракции базы данных позволяет использовать набор кода для подключения различных баз данных, который также можно понимать как pdo Вы можете пройти через pdo Функциональное подключение pdo Поддерживаемую базу данных, но вам все равно потребуется драйвер базы данных, требуемый проектом. Например mysql , вам необходимо установить mysql Вы можете передать pdo Функциональное соединение mysql . Конечно, вы не можете использовать его do , но через mysql Метод подключения, предоставляемый драйвером mysql . php Установлен по умолчанию pdo и pdo-sqlite Поэтому мы устанавливаем его по требованию. Связанные документы здесь: расширение базы данных В этом проекте нам нужно установить mysql Расширение и pdo-mysql Расширения, PHP о mysql У нас также есть много вариантов расширения php Официальный mysql Расширение mysqlnd. pdo-mysql да pdo |
[[email protected] php-7.3.9]# ./configure --prefix=/usr/local/php/7.3 --enable-fpm --with-fpm-user=www --with-fpm-group=www --sbindir=/usr/local/php/7.3/bin --with-config-file-path=/usr/local/php/7.3/etc --with-openssl --with-zlib --enable-mysqlnd --with-pdo-mysql=mysqlnd [[email protected] php-7.3.9]# make clean [[email protected] php-7.3.9]# make && make install [[email protected] php-7.3.9]# php -m | grep pdo pdo_mysql pdo_sqlite [[email protected] blog]# php artisan migrate Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = alone_laravel_test and table_name = migrations and table_type = 'BASE TABLE')
Об этой ошибке, изменении в MySQL 8.0.4 (2018-01-23, релиз-кандидат) в статье есть четкое объяснение. Короче говоря, плагин аутентификации обновлен, но mysqlnd Это расширение не обновлялось. Итак, мы выбираем настройки mysql Подключаемый модуль аутентификации-это старый подключаемый модуль (глобальный режим). Конечно, мы также можем указать плагин аутентификации при создании нового пользователя , ИДЕНТИФИЦИРОВАННОГО С помощью mysql_native_password (локальный), конечно, вы также можете использовать другой mysql Драйвер, кто это? mysqli 。 mysqli да mysql Расширенная версия google One. Два из них mysql Официальное использование php Написано api (это документ: MySQL PHP API), который используется выше mysqlnd да php Официальное использование C Написано api . Что касается mysql и mysql В чем разница? Изучите это сами. Мы выбираем первый путь:
vi /etc/my.cnf #Under the [mysqld] tab, add the following: default_authentication_plugin=mysql_native_password [[email protected] blog]# /etc/init.d/mysql.server restart Shutting down MySQL. SUCCESS! Starting MySQL.. SUCCESS! #Is it wrong? Why? Because the root account's authentication plug-in defaults to caching? Sha2? Password mysql> select plugin from user where user = 'root'; +-----------------------+ | plugin | +-----------------------+ | caching_sha2_password | +-----------------------+ 1 row in set (0.00 sec) mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password'; Query OK, 0 rows affected (0.01 sec) mysql> select plugin from user where user = 'root'; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; Query OK, 0 rows affected (0.00 sec) mysql> select plugin from user where user = 'root'; +-----------------------+ | plugin | +-----------------------+ | mysql_native_password | +-----------------------+ 1 row in set (0.00 sec) mysql> exit Bye [[email protected] blog]# php artisan migrate Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table (0.12 seconds) Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table (0.02 seconds) Migrating: 2019_08_19_000000_create_failed_jobs_table Migrated: 2019_08_19_000000_create_failed_jobs_table (0.01 seconds)
установка расширения curl (на этот раз я не столкнулся с проблемой расширения curl, но это также часто используемое расширение):
#First, install curl devel yum install -y curl-devel #Locate libcurl whereis curl #Then add -- with curl ./configure --prefix=/usr/local/php/7.3 --enable-fpm --with-fpm-user=www --with-fpm-group=www --sbindir=/usr/local/php/7.3/bin --with-config-file-path=/usr/local/php/7.3/etc --with-openssl --with-zlib --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-curl=/usr/include/curl make clean make && make install php -m | grep curl
В зависимости от разных компаний будут установлены разные расширения, официальные расширения php Указаны параметры компилятора и общие расширения php Один в пакете ext Каталог, все в нем, опущен шаг загрузки и соответствует некоторым неофициальным методам установки расширений. Неофициальные расширения не могут быть установлены с помощью параметров компиляции, например: swoole . Давайте посмотрим, как установить эти расширения: swoole Расширенная установка (официальный документ):
[[email protected] source]# tar -zxf swoole-4.4.5.tgz [[email protected] source]# cd swoole-4.4.5 [[email protected] swoole-4.4.5]# /usr/local/php/7.3/bin/phpize Configuring for: PHP Api Version: 20180731 Zend Module Api No: 20180731 Zend Extension Api No: 320180731 Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. #Wikipedia has been given above. Here we use Yum to install it. We will compile and install it by ourselves [[email protected] php-7.3.9]# yum install -y autoconf [[email protected] swoole-4.4.5]# /usr/local/php/7.3/bin/phpize Configuring for: PHP Api Version: 20180731 Zend Module Api No: 20180731 Zend Extension Api No: 320180731 [[email protected] swoole-4.4.5]# ./configure --with-php-config=/usr/local/php/7.3/bin/php-config [[email protected] swoole-4.4.5]# make && make install #Add extension = swoole.so to the last line of php.ini, preferably with a label [swoole] [[email protected] php-7.3.9]# vi /usr/local/php/7.3/etc/php.ini [[email protected] php-7.3.9]# php -m | grep swoole swoole [[email protected] php-7.3.9]# php -i | grep swoole swoole Author => Swoole Team <[email protected]> swoole.display_errors => On => On swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.unixsock_buffer_size => 8388608 => 8388608 swoole.use_shortname => On => On OLDPWD => /root/source/swoole-4.4.5 $_SERVER['OLDPWD'] => /root/source/swoole-4.4.5
Проверьте запуск службы
Убедитесь, что наши сервисы полностью загружены: php , mysql , nginx , redis
[[email protected] utils]# ps -ef | grep nginx && ps -ef | grep php && ps -ef | grep redis && ps -ef | grep mysql root 5546 2417 0 03:17 pts/1 00:00:00 grep --color=auto nginx root 15038 1 0 02:06 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx web 15039 15038 0 02:06 ? 00:00:00 nginx: worker process root 5548 2417 0 03:17 pts/1 00:00:00 grep --color=auto php root 27051 1 0 02:15 ? 00:00:00 php-fpm: master process (/usr/local/php/7.3/etc/php-fpm.conf) www 27052 27051 0 02:15 ? 00:00:00 php-fpm: pool www www 27053 27051 0 02:15 ? 00:00:00 php-fpm: pool www root 5508 1 0 02:59 ? 00:00:01 /usr/local/redis/bin/redis-server 127.0.0.1:6379 root 5550 2417 0 03:17 pts/1 00:00:00 grep --color=auto redis root 5552 2417 0 03:17 pts/1 00:00:00 grep --color=auto mysql root 20299 1 0 Sep06 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/bogon.pid mysql 20466 20299 0 Sep06 ? 00:19:53 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/logs/mariadb/mariadb.log --pid-file=/data/mysql/bogon.pid --socket=/tmp/mysql.sock
Посетите веб-сайт
Немного некрасиво, ха-ха. Это не должно было быть реализовано npm Связанными командами.
Я всегда хотел написать такую статью или понять команду копирования и вставки. Это заняло пять дней, я все это отрепетировал и примерно узнал. Я думаю, что это очень хорошо. Эта статья написана не для того, чтобы вы копировали и вставляли, а для того, чтобы следовать этой строке и хорошо ее изучить. В статье приведено множество ссылок на документы. Я надеюсь, что вы научитесь обращаться к документам в будущей работе, а не только к Baidu, google . Наконец, есть еще некоторые вещи, которые не написаны, и многие вещи не очень понятны, такие как: различные параметры оптимизации, различные параметры компиляции, различные зависимости и т.д. Есть еще некоторые вещи, которые нельзя было сказать раньше, некоторые опасения и многое другое, что нельзя сказать правильно. Я надеюсь, что вы простите меня и приветствуете ваши комментарии и предложения.
Чжу Цзюнь: не отказывайся от поисков истины.
Не распыляйте, если вам это не нравится. Пожалуйста, укажите источник перепечатки.