Архитектура LAMP (Бао, я провел рефакторинг и потерял архитектуру LAMP)

задняя часть Архитектура программист
Архитектура LAMP (Бао, я провел рефакторинг и потерял архитектуру LAMP)

Это мой 25-й день в Gengwen Challenge, ознакомьтесь с подробностями мероприятия: больше текстового задания


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

Добро пожаловать в поиск WeChat »ИТ-путешествие Джейка"обрати внимание на!

Оригинальная ссылка:Архитектура | Позвольте вам легко поиграть с архитектурной платформой веб-сайта LAMP (1)

предисловие

В предыдущей статье я рассказал, как создать службу HTTPD, систему базы данных MySQL и управление доступом к службе HTTPD в среде Linux; соответствующие статьи можно найти в рекомендуемой к прочтению серии в конце статьи, а затем в сегодняшней статье я представлятьLAMP 架构.

1. Что такое архитектура LAMP?

Архитектура LAMP — это один из зрелых режимов приложений корпоративных веб-сайтов, набор систем и соответствующего программного обеспечения, которые могут работать вместе и могут предоставлять динамические службы веб-сайтов и среды разработки приложений.

ЛАМПА — это аббревиатура.L:Linux操作系统,A:Apache网站服务器,M:MySQL数据库服务器,P:PHP、Python、Perl编程语言;

2. Компоненты архитектурной платформы LAMP

  • Linux操作系统: является основой архитектуры LAMP, используемой для поддержки операционной системы веб-сайта, с хорошей стабильностью и совместимостью;

  • Apache网站服务器: это интерфейс архитектуры LAMP, программа веб-сервера с мощными функциями и хорошей стабильностью, которая предоставляет пользователям доступ к веб-сайту, отправку веб-страниц, файлов, изображений и т. д .;

  • MySQL数据库服务器: это серверная часть архитектуры LAMP, система реляционных баз данных с открытым исходным кодом, данные хранятся в базе данных MySQL и могут быть запрошены с помощью операторов SQL;

  • PHP、Python、Perl编程语言: язык программирования для динамических веб-страниц, который используется для интерпретации файлов динамических веб-страниц и предоставления среды разработки и запуска веб-приложений. PHP — это широко используемый многоцелевой язык сценариев с открытым исходным кодом, который можно встраивать в HTML для разработки веб-приложений.

3. Преимущества применения платформы архитектуры LAMP

  • 成本低: Программное обеспечение с открытым исходным кодом, свободно доступное и бесплатное для использования, без слишком строгих технических и лицензионных ограничений, что значительно снижает затраты предприятий на внедрение.

  • 可定制: Он имеет большое количество дополнительных компонентов и масштабируемых функций, которые удовлетворяют пользовательские потребности корпоративных приложений, развиваются, добавляются новые функции.

  • 易开发: На динамическом веб-сайте на платформе LAMP код страницы лаконичен, интеграция с языком разметки HTML очень хорошая, код страницы легко читается и модифицируется.

  • 方便易用: Язык программирования PHP является интерпретативным языком, и различные разработанные веб-программы не нуждаются в компиляции, что удобно для переноса и использования.Всю программу проекта веб-сайта можно получить, скопировав ее в каталог веб-сайта.

  • 安全稳定: Благодаря преимуществам открытого исходного кода,

В-четвертых, создайте среду выполнения PHP.

PHP:Hypertext Preprocessor,超文本预处理器的字母缩写, является широко используемым многоцелевым языком сценариев с открытым исходным кодом, который может быть встроен в HTML, подходит для разработки веб-приложений и имеет более высокую скорость выполнения веб-страницы, поддерживает большинство популярных баз данных и различные операционные системы.

Установить PHP-пакеты

Готов к работе

Во избежание возникновения конфликтов программ и других явлений, сначала используйтеrpmспособ установкиphpи сопутствующие зависимости.

Если он уже существует, вы можете卸载 php php-cli php-ldap php-common php-mysqlи т.д. Кроме того, необходимо установитьzlib-develа такжеlibxml2-develМешок.

[root@localhost lamp]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps
[root@localhost lamp]# rpm -ivh /mnt/Packages/zlib-devel-1.2.3-29.el6.x86_64.rpm 
[root@localhost lamp]# rpm -ivh /mnt/Packages/libxml2-devel-2.7.6-14.el6.x86_64.rpm

Установите библиотеку инструментов расширения

В практических корпоративных приложениях некоторые основаны наPHPразвитиеWebДля прикладной системы потребуются дополнительные инструменты расширения.

Например:数据加密工具:libmcrypt、mhash、mcryptПодождите, установочные пакеты, задействованные в этой статье, будут упакованы вместе в公众号后台, вы можете пройти获取способ получитьпройти через站点:http://sourceforge.netскачать, установитьPHPЭти инструменты расширения должны быть установлены перед пакетом программного обеспечения.

Установить libmcrypt

[root@localhost lamp]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@localhost lamp]# cd /usr/src/libmcrypt-2.5.8/
[root@localhost libmcrypt-2.5.8]# ./configure
[root@localhost libmcrypt-2.5.8]# make && make install
[root@localhost libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/

установить mhash

[root@localhost lamp]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@localhost lamp]# cd /usr/src/mhash-0.9.9.9/
[root@localhost mhash-0.9.9.9]# ./configure
[root@localhost mhash-0.9.9.9]# make && make install
[root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/

установить mcrypt

[root@localhost lamp]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@localhost lamp]# cd /usr/src/mcrypt-2.6.8/
[root@localhost mcrypt-2.6.8]# ./configure
[root@localhost mcrypt-2.6.8]# ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH     # 解决 configure 配置报错的现象
[root@localhost mcrypt-2.6.8]# ./configure
[root@localhost mcrypt-2.6.8]# make && make install

Скомпилируйте и установите PHP

распаковывать

будет загруженPHPИсходный пакет распаковывается и передается/usr/srcкаталог и переключитесь на этот каталог.

[root@localhost lamp]# tar zxf php-5.3.28.tar.gz -C /usr/src/
[root@localhost lamp]# cd /usr/src/php-5.3.28/

настроить

сделанный на заказPHPпараметры конфигурации, необходимо указатьhttpdа такжеmysqldПуть установки легко добавить соответствующие параметры поддержки, так чтоLAMPКомпоненты работают вместе. также необходимо указать安装路径,启用多字节支持,加密扩展支持Ждать.

[root@localhost php-5.3.28]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring

Значение каждого варианта параметра:

  • --prefix: указывает, чтоPHPВ какой каталог установлена ​​программа;

  • --с-mcrypt:加载数据加密等扩展工具;

  • --with-apxs2: установитьapache http serverРасположение файла предоставленной программы поддержки модуля apxs;

  • --with-mysql: установитьMySQL 数据库Место установки сервисной программы;

  • --with-config-file-path: установитьPHPфайл конфигурацииphp.iniместо, где он будет храниться;

  • --enable-mbstring:启用多字节字符串功能,支持中文等代码;

Если во время процесса конфигурации возникает следующая ошибка, которая привела к сбою компиляции;

configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!

При поиске libmysqlclient обнаруживается, что это мягкое соединение, созданное libmysqlclient.so.16.0.0 в каталоге /usr/lib64/mysql/. PHP по умолчанию использует /usr/lib/ для поиска, поэтому оно не найдено. , просто найдите проблему.

Решение

Выполните следующую команду;

cp -rp /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so

图片

Скомпилируйте и установите

Если процесс компиляции длительный и за это время не возникает ошибок, значит,PHPПроцесс установки программы в основном завершен.

[root@localhost php-5.3.28]# make && make install

图片

5. Настройте среду компонента LAMP

в основном включает

  • PHP 的配置文件 php.ini: определить рабочие параметры PHP;

  • Apache 的配置文件 httpd.conf: Загрузите модуль libphp5.so для поддержки веб-страниц PHP;

корректировка конфигурации php.ini

Создание и базовые настройки php.ini, установленный пакет PHP, сервер не будет автоматически создавать файл php.ini, но в исходном каталоге их два.php.ini 开头的样例配置文件,分别用于开发环境和生产环境.

[root@localhost php-5.3.28]# ll php.ini-*
-rw-r--r--. 1 501 games 69606 12月 11 2013 php.ini-development   # 开发样例文件
-rw-r--r--. 1 501 games 69627 12月 11 2013 php.ini-production   # 生产样例文件

Выберите один из файлов примеров и скопируйте вPHPдиректория с конфигурационным файлом/usr/local/php5под и переименованныйphp.ini.

[root@localhost php-5.3.28]# cp /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini

Исправлятьphp.iniСодержимое конфигурации в файле можно контролироватьPHPХарактеристики исполнения веб-страниц.

Разрешать ли пользователям загружать файлы, устанавливать ограничение размера загружаемых файлов, устанавливать используемый по умолчанию набор символов, загружать дополнительные модули расширения и т. д.;

[root@localhost php-5.3.28]# vi /usr/local/php5/php.ini 
784 default_charset = "uft-8"               # 设置默认字符集:utf-8
882 file_uploads = On                       # 允许通过 PHP 网页上传文件
891 upload_max_filesize = 2M                # 允许上传的文件大小限制
894 max_file_uploads = 20                   # 每个 HTTP 最大允许请求上传的文件数
740 post_max_size = 8M                      # 每次通过表单 post 提交的数据量限制
226 short_open_tag = On                     # 允许识别 PHP 短语法标记

添加 ZendGuardLoader 优化模块, улучшитьPHPЭффективность выполнения программы, оптимизация скорости загрузки страниц. Этот модуль оптимизации доступен для серии PHP 5.3, а также может быть загружен с官方站点:http://www.zend.com 下载.

первая загрузкаZendGuardLoaderпакет распаковывается в/usr/srcкаталог и поместитеphp-5.3.xСкопируйте файлы модуля в каталог вPHPПапка модуля программы.

[root@localhost lamp]# tar zxf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/
[root@localhost lamp]# cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/
[root@localhost php-5.3.x]# cp ZendGuardLoader.so /usr/local/php5/lib/php

Исправлятьphp.iniфайл конфигурации, добавьте загрузку и включитеZendGuardLoader.soОператоры конфигурации для модуля.

[root@localhost php-5.3.x]# vi /usr/local/php5/php.ini
1919 zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
1920 zend_loader.enable=1

настройки конфигурации httpd.conf

Сделатьhttpd服务器служба поддержкиPHPФункция разбора страницы, нужно пройтиLoadModuleЗагрузка элемента конфигурацииPHPфайл модуля программы, затем добавьтеAddTypeэлементы конфигурации и поддержка.phpтипа веб-файлов, также должны бытьDirectoryIndexДобавьте элементы конфигурации в строку конфигурацииindex.phpа такжеindex.htmlвыявить общиеPHPДомашний файл.

перезагружатьhttpdобслуживание и обновление элементов конфигурации;

[root@localhost php-5.3.x]# vi /usr/local/httpd/conf/httpd.conf
53 LoadModule php5_module        modules/libphp5.so
54 AddType application/x-httpd-php .php
170 DirectoryIndex index.php index.html
[root@localhost php-5.3.x]# /usr/local/httpd/bin/apachectl restart

Значения, содержащиеся в приведенных выше конфигурациях

LoadModule установленPHPЕсли он добавляется автоматически во время процесса, AddType необходимо добавить вручную, а DirectoryIndex необходимо изменить на исходной основе;

  • php5_module: имя модуля;

  • modules/libphp5.so: расположение файла модуля;

6. Проверьте, успешно ли построена LAMP.

ЗаканчиватьPHPПосле установки и настройки соответствующих инструментов расширения соответствующие функции можно протестировать и проверить.LAMP架构平台и в корневом каталоге сайта/usr/local/httpd/htdocs/Создайте соответствующий тестPHPВеб-страницы, доступ к которым осуществляется через браузер для вынесения сужденийLAMPУдачно ли он построен?

Проверить двумя способами:

  • PHP 网页解析是否成功;

  • 访问 MySQL 数据库系统进行验证;

Проверьте, является ли веб-страница PHP нормальной

Напишите суффикс имениtest1.phpформатированные веб-файлы в сочетании сPHPВстроенныйphpinfo( )функция для отображения сервераPHPИнформация об окружении, код в файле должен включать<?php···?>теги и поместите файл в корневую директорию сайта/usr/local/httpd/htdocs/.

[root@localhost php-5.3.x]# vi /usr/local/httpd/htdocs/test1.php
<?php
phpinfo( );
?>

Доступ через браузер с именем:test1.phpтестовая страница.

Например:http://www.jacktiangjwan.com/test1.php

это можно увидетьPHPНомер версии программы, команды конфигурации, текущие переменные и другая информация;

图片

Проверьте, может ли веб-страница PHP нормально обращаться к базе данных MySQL.

Напишите суффикс имениtest2.phpформатированные веб-файлы,添加数据库的操作命令, который используется для проверкиMySQL 数据库соединение, запрос и другие операции.

  • mysql_connect()函数: для подключенияMySQL数据库, вам необходимо указать адрес целевого хоста, имя пользователя и пароль;

  • mysql_close: отключить соединение с базой данных;

[root@localhost mysql-5.5.22]# vi /usr/local/httpd/htdocs/test2.php 
<?php
$link=mysql_connect('127.0.0.1','root','666666');    # 连接 MySQL 数据库
if($link) echo "恭喜你,成功连接到 MySQL 数据库!";     # 连接成功时的返回信息
mysql_close();                                       # 断开数据库连接
?>

перезапустить службу

[root@localhost mysql-5.5.22]# /usr/local/httpd/bin/apachectl restart

Доступ через браузер с именем:test2.phpтестовая страница.

Например:http://www.jacktiangjwan.com/test2.php

Вы можете увидеть успешное подключениеMySQL 数据库, когда ваше имя пользователя и пароль неверны, илиmysql_connect()函数Если он не запущен и не может подключиться к базе данных, будет выведена страница с ошибкой.

图片

Рекомендуемое чтение

Научите, как развернуть базу данных MySQL в среде Linux!

MySQL | Система баз данных MySQL (2) — основные операции операторов SQL

MySQL | Система базы данных MySQL (3) - авторизация пользователя базы данных

MySQL | Система баз данных MySQL (4) - резервное копирование и восстановление базы данных


Оригинальность непростая.Если вы считаете, что эта статья полезна для вас, ставьте лайк, комментируйте или пересылайте эту статью, потому что это будет моей мотивацией выпускать больше качественных статей, спасибо!

Кстати, друзья-копатели, не забудьте дать мне бесплатный подписчик! На случай, если ты заблудишься и не сможешь найти меня в следующий раз.

Увидимся в следующий раз!