Php apache2: PHP: Apache 2.x на Unix системах
PHP: Apache 2.x на Unix системах
I have successfully installed Apache 2.2.11 and PHP 5.2.8 under Red Hat 9.0 on a Pentium 166 with 32 MB of RAM.
While I used RH9, the worst possible case, these notes are probably good for RH-based distributions too (Red Hat Enterprise, Fedora, CentOS…)
If you want to install MySQL, it needs to be installed before PHP because PHP requires some libraries be available.
One think important when picking up a binary distribution of MySQL is to download all four packages: MySQL-server, MySQL-devel, MySQL-client and MySQL-shared. Note: The MySQL was bundled with PHP 4 but is not anymore in PHP 5.
Then you need to install Apache before PHP, because again PHP needs some libraries be available. I installed Apache 2 from source, using the very last version available, which is 2.2.11.
I installed PHP 5.2.8 from source. Here, I had a number of problems, but none which I could not resolve easily, some of them with a little help from different forums I found through Google.
Rembember: When it says you need a package named xyz and you notice there is also one named xyz-devel, grab it.
Most of the packages I got from:
http://legacy.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/
A similar page exists for other versions of Red Hat
and:
http://rpmfind.net/
This site has an updated version of some of the packages. Make sure to use only the one labeled for you version (in my case, Red Hat 9.0) or it will not likely work.
You already have glibc and glibc-common installed, but you need to get glibc-devel and glibc-kernheaders. Make sure to match glibc’s version (rpm -q glibc). Note: When it says kernel-header is a required dependency, that’s glibc-kernheader (not kernel-source). You will also need binutils (no need to match the version), and gcc and cpp (version must match).
You need zlib-devel (zlib is probably already installed, match the version you have).
If you install the GD extension, the actual library is already bundled with PHP 5 (use that one, they have done some changes in there, so don’t upgrade), but you will need to install libpng and libpng-devel (match version, or disable in configure if you don’t want) and libjpeg (no -devel with that one).
You will also need libxml2. Now there were a problem, because PHP requires libxml2 be 2.6 or greater, but Red Hat only supplied 2.5.4-1 for RH9 (if you have a more recent distro, you might be more lucky). After looking for a while, I decided to grab the source code for the most recent distribution at the official website (http://xmlsoft.org/) and compiled.
Hope my post is useful to someone. Please, share your experience when compiling/installing for your particular platform and setup. Remember how hard it’s been for you the very first time. I confess, my very first server installation took me nearly a week and I was glad others helped me.
Apache2 и PHP 7 установил. Как запустить php файлы? — Хабр Q&A
Ииииии внимание ОТВЕТ!
sudo apt-get install libapache2-mod-php7.0
Так что если кому надо пользуйтесь.
Устанавливал все такими коммандами:
sudo apt update
sudo apt install -y php7.2
sudo apt install php7.2-curl php7.2-gd php7.2-json php7. 2-mbstring php7.2-mcrypt
sudo apt install apache2 libapache2-mod-php7.2
sudo apt install mysql-server php7.2-mysql
sudo apt install phpmyadmin
sudo systemctl restart apache2.service
Как захожу в localhost вижу Apache2 Ubuntu Default Page
It works! . Видать работает. Если ввести
systemctl status apache2.service
вижу:
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Пт 2018-04-20 17:28:05 MSK; 3h 11min
Docs: man:systemd-sysv-generator(8)
Process: 1975 ExecStart=/etc/init.d/apache2 start (code=exited, statu
CGroup: /system.slice/apache2.service
├─2296 /usr/sbin/apache2 -k start
├─2327 /usr/sbin/apache2 -k start
├─2328 /usr/sbin/apache2 -k start
├─2329 /usr/sbin/apache2 -k start
├─2330 /usr/sbin/apache2 -k start
└─2331 /usr/sbin/apache2 -k start
апр 20 17:27:59 morilon systemd[1]: Starting LSB: Apache2 web server. ..
апр 20 17:27:59 morilon apache2[1975]: * Starting Apache httpd web ser
апр 20 17:28:03 morilon apache2[1975]: [Fri Apr 20 17:28:03.216910 2018
апр 20 17:28:03 morilon apache2[1975]: AH00558: apache2: Could not reli
апр 20 17:28:05 morilon apache2[1975]: *
апр 20 17:28:05 morilon systemd[1]: Started LSB: Apache2 web server.
lines 1-21/21 (END)
комманда sudo php -v
показывает
PHP 7.2.4-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr 5 2018 08:53:57) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.4-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Создал в директории /var/www/html/ файл index.php если просто щелкнуть на него мышкой откроется браузер и предложет файл сохранить, если опять же ввести localhost будет в браузере сообщение об ошибке — 503 Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/2.4.18 (Ubuntu) Server at localhost Port 80.
Собственно и вопрос как открывать файлы php? Хотелось бы освоить написание сайтов на PHP.
логи в /var/log/apache2
[Fri Apr 20 10:27:16.008033 2018] [mpm_prefork:notice] [pid 1906] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 10:27:16.008057 2018] [core:notice] [pid 1906] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 10:42:29.140511 2018] [mpm_prefork:notice] [pid 1906] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 10:42:30.228951 2018] [mpm_prefork:notice] [pid 4491] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 10:42:30.229010 2018] [core:notice] [pid 4491] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 10:46:59.120437 2018] [mpm_prefork:notice] [pid 4491] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 10:47:00.195116 2018] [so:warn] [pid 4692] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 10:47:00. 250121 2018] [mpm_prefork:notice] [pid 4693] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 10:47:00.250146 2018] [core:notice] [pid 4693] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 11:26:47.132960 2018] [mpm_prefork:notice] [pid 4693] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 13:15:54.807306 2018] [so:warn] [pid 2169] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 13:15:55.059374 2018] [mpm_prefork:notice] [pid 2170] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 13:15:55.059424 2018] [core:notice] [pid 2170] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 14:23:14.735637 2018] [mpm_prefork:notice] [pid 2170] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 17:28:03.293100 2018] [so:warn] [pid 2283] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 17:28:04.807520 2018] [mpm_prefork:notice] [pid 2296] AH00163: Apache/2. 4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 17:28:04.807576 2018] [core:notice] [pid 2296] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 20:53:21.062375 2018] [proxy:error] [pid 2328] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/php/php7.2-fpm.sock (*) failed
[Fri Apr 20 20:53:21.062433 2018] [proxy_fcgi:error] [pid 2328] [client 127.0.0.1:55524] AH01079: failed to make connection to backend: httpd-UDS
[Fri Apr 20 21:09:04.081546 2018] [mpm_prefork:notice] [pid 2296] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 21:57:49.211905 2018] [so:warn] [pid 2101] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 21:57:50.340125 2018] [mpm_prefork:notice] [pid 2110] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 21:57:50.340172 2018] [core:notice] [pid 2110] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 22:06:04.940699 2018] [proxy:error] [pid 2141] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/php/php7. 2-fpm.sock (*) failed
[Fri Apr 20 22:06:04.940775 2018] [proxy_fcgi:error] [pid 2141] [client 127.0.0.1:39546] AH01079: failed to make connection to backend: httpd-UDS
включить php на apache2 (используя Ubuntu 16.04)
Я установил Apache2 в свою систему Ubuntu 16.04.1.
Я тоже хочу установить и активировать PHP7.0 на свой Webserver.
Я установил php и попытался активировать модуль в Apache2.
При перезапуске сервера я получаю:
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
Когда я выполняю » systemctl status apache2.service, я получаю:
-- Unit apache2.service has begun starting up.
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: * Starting Apache httpd web server apache2
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: *
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: * The apache2 configtest failed.
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: Output of config test was:
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: [Mon Jan 30 12:19:58.942761 2017] [:crit] [pid 29935:tid 140264661432192] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: AH00013: Pre-configuration failed
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: Action 'configtest' failed.
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: The Apache error log may have more information.
Jan 30 12:19:58 tom-450-a141ng systemd[1]: apache2.service: Control process exited, code=exited status=1
Jan 30 12:19:58 tom-450-a141ng systemd[1]: Failed to start LSB: Apache2 web server.
-- Subject: Unit apache2.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit apache2.service has failed.
--
-- The result is failed.
Jan 30 12:19:58 tom-450-a141ng systemd[1]: apache2.service: Unit entered failed state.
Jan 30 12:19:58 tom-450-a141ng systemd[1]: apache2.service: Failed with result 'exit-code'.
Jan 30 12:19:58 tom-450-a141ng sudo[29892]: pam_unix(sudo:session): session closed for user root
Так что я больше не могу начать Apache.
Я везде искал решение.
Плз помогите
php
apache
ubuntu
6
Поскольку вам нужно установить php7, просто удалите установленный в данный момент с помощью-
sudo apt-get purge php*
а потом бежать
sudo apt-get -y install php7.0 libapache2-mod-php7.0
Затем вы можете установить другие модули в соответствии с вашими потребностями с помощью-
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache
systemctl перезапуск apache2
1
Ошибки «[Пн янв 30 12:19:58.942761 2017] [:Крит] [пид 29935:tid 140264661432192] Apache выполняется резьбовое MPM, но ваш PHP модуль не компилируется, чтобы быть ориентирован на многопотоковое исполнение. » описывает, что вы используете резьбовые MPM , то есть, событие или работник , но ваш php модуль mod_php, который зависит от установки, что не является потокобезопасным, поэтому вы можете использовать его только с prefork .
Если вы хотите использовать резьбовой MPM (что тоже хорошо, хорошая идея, и я тоже рекомендую ее), вы не должны использовать mod_php, вместо этого вы должны использовать php-fpm .
Вы найдете, как настроить его в официальном Apache Wiki
Установка apache2 + php + mysql + phpmyadmin на ubuntu 16.04
Решил поделиться с вами опытом установки софта на Ubuntu 16.04.
Напомню, все ниже описанные операции нужно выполнять под рутом (sudo su -).
обновляем софт
ставим Apache2
настроим Apache2
nano /etc/apache2/apache2.conf
## фиксим предупреждения при перезапуске Apache
ServerName localhost
## Включаем интерпретацию php
AddType application / x-httpd-php . php .phtml
## Устанавливаем кодировку UTF-8 по умолчанию
AddDefaultCharset UTF-8
nano /etc/apache2/apache2.conf
## фиксим предупреждения при перезапуске Apache ServerName localhost
## Включаем интерпретацию php AddType application / x-httpd-php .php .phtml
## Устанавливаем кодировку UTF-8 по умолчанию AddDefaultCharset UTF-8 |
перезапускаем Apache
Открываем http://localhost/ и радуемся.
Настраиваем виртуальные хосты (VirtualHost)
(только для локальных хостов) создать файл vhosts.sh со следующим содержимым:
#!/bin/bash
echo «Creating Virtual Host»
cd /etc/apache2/sites-available
cat <<EOF >> «$1.conf»
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName $1
ServerAlias www.$1
DocumentRoot «/var/www/$1″
<Directory /var/www/$1>
Options All
AllowOverride All
</Directory>
</VirtualHost>
EOF
mkdir «/var/www/$1″
cd /etc/apache2/sites-enabled
ln -s «/etc/apache2/sites-available/$1. conf» «$1.conf»
echo «Editing /etc/hosts»
cat <<EOF >> «/etc/hosts»
127.0.0.1 $1
EOF
echo «Set permissions»
chmod 0777 -R «/var/www/$1″
echo «Restarting Apache2″
/etc/init.d/apache2 restart
echo «Finished!»
echo «Local address: /var/www/$1″
echo «Web address: http://$1»
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/bin/bash echo «Creating Virtual Host» cd /etc/apache2/sites-available cat <<EOF >> «$1.conf» <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName $1 ServerAlias www.$1 DocumentRoot «/var/www/$1» <Directory /var/www/$1> Options All AllowOverride All </Directory> </VirtualHost> EOF mkdir «/var/www/$1» cd /etc/apache2/sites-enabled ln -s «/etc/apache2/sites-available/$1. conf» «$1.conf» echo «Editing /etc/hosts» cat <<EOF >> «/etc/hosts» 127.0.0.1 $1 EOF echo «Set permissions» chmod 0777 -R «/var/www/$1» echo «Restarting Apache2» /etc/init.d/apache2 restart echo «Finished!» echo «Local address: /var/www/$1» echo «Web address: http://$1» |
Даете права на выполнение:
chmod + x /var/www/vhosts.sh
chmod + x /var/www/vhosts.sh |
Пример создания хоста:
sudo /var/www/vhosts.sh mysite.loc
sudo /var/www/vhosts.sh mysite.loc |
Все последующие шаги по virtualhosts можно пропускать.
В /etc/hosts прописываем наши хосты: (nano /etc/hosts)
Переходим в папку /etc/apache2/
Смотрим, что внутри:
root @ HP: /etc/apache2 # ls -l
всего 88
-rw-r — r— 1 root root 7728 26 апреля 22:55 apache2. conf
-rw-r — r— 1 root root 7691 26 апреля 22:34 apache2.conf ~
drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-available
drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-enabled
-rw-r — r— 1 root root 1782 3 января 16:48 envvars
-rw-r — r— 1 root root 31063 3 января 16:48 magic
drwxr-xr-x 2 root root 12288 26 апреля 22:27 mods-available
drwxr-xr-x 2 root root 4096 26 апреля 22:27 mods-enabled
-rw-r — r— 1 root root 320 7 января 15:23 ports.conf
drwxr-xr-x 2 root root 4096 26 апреля 22:43 sites-available
drwxr-xr-x 2 root root 4096 26 апреля 22:44 sites-enabled
root @ HP: /etc/apache2 # ls -l всего 88 -rw-r — r— 1 root root 7728 26 апреля 22:55 apache2.conf -rw-r — r— 1 root root 7691 26 апреля 22:34 apache2.conf ~ drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-available drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-enabled -rw-r — r— 1 root root 1782 3 января 16:48 envvars -rw-r — r— 1 root root 31063 3 января 16:48 magic drwxr-xr-x 2 root root 12288 26 апреля 22:27 mods-available drwxr-xr-x 2 root root 4096 26 апреля 22:27 mods-enabled -rw-r — r— 1 root root 320 7 января 15:23 ports. conf drwxr-xr-x 2 root root 4096 26 апреля 22:43 sites-available drwxr-xr-x 2 root root 4096 26 апреля 22:44 sites-enabled |
В папке sites-available хранятся кофниги доступных хостов, а в sites-enabled ссылки на активные хосты.
Переходим в доступные хосты и создаем конфиг для mysite.loc. Кстати, если ваш дефолтный конфиг заканчивается на .conf тогда создавайте конфиги с расширением * .conf.
nano sites-available/mysite.conf
nano sites-available/mysite.conf |
Пишем туда:
ServerName mysite.loc DocumentRoot /var/www/mysite.loc AllowOverride All
ServerName mysite.loc DocumentRoot /var/www/mysite.loc AllowOverride All |
Данной записи достаточно, чтобы работал ваш локальный хост. Теперь нужно создать ссылку на него в sites-enabled.
Ошибки: если в вас возникает ошибка и вы не можете создать ссылку. Тогда это сделать можно следующей записью:
ln /etc/apache2/sites-available/mysite.conf /etc/apache2/sites-enabled/
ln /etc/apache2/sites-available/mysite.conf /etc/apache2/sites-enabled/ |
Теперь нужно только перезагрузить настройки Apache2:
service apache2 reload
## или, если необходимо
service apache2 restart
service apache2 reload ## или, если необходимо service apache2 restart |
Итак, Apache2 работает, первый хост добавлен!
ставим MySQL
MySQL содержится в репозиториях Ubuntu. Он разбит на несколько пакетов.
Для того чтобы установить MySQL сервер выполните команду:
sudo apt-get install mysql-server
sudo apt-get install mysql-server |
При установке конфигурации скрипт запросит пароль администратора (root) базы данных.
Ставим PHP 5.6
Сначала нужно удалить все старые версии, если есть
sudo apt-get purge `dpkg -l | grep php | awk ‘{print $ 2}’ | tr «\ n» «» `
sudo apt-get purge `dpkg -l | grep php | awk ‘{print $ 2}’ | tr «\ n» «» ` |
добавляем PPA
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/php |
обновляемся
ставим php
sudo apt-get install php5.6
sudo apt-get install php5.6 |
дополнительные модули
sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml
sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml |
Смотрим версию:
sudo php -v
PHP 5. 6.26-1 + deb.sury.org ~ xenial + 1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
sudo php -v
PHP 5.6.26-1 + deb.sury.org ~ xenial + 1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies |
ставим PhpMyadmin
apt-get install phpmyadmin
apt-get install phpmyadmin |
Конфигурируем его под себя, — обозначаем что юзает Apache2, указываем пароль к БД, и пароль к phpmyadmin
Ошибки: http://localhost/phpmyadmin not found ubuntu
решение:
nano /etc/apache2/apache2. conf
## добавляем в конец файла
Include /etc/phpmyadmin/apache.conf
nano /etc/apache2/apache2.conf ## добавляем в конец файла Include /etc/phpmyadmin/apache.conf |
Ошибки: http://localhost/phpmyadmin HTTP ERROR 500
sudo apt-get install php-mbstring php-gettext
sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo service apache2 restart
sudo apt-get install php-mbstring php-gettext sudo phpenmod mcrypt sudo phpenmod mbstring sudo service apache2 restart |
Если вы все выполнили правильно, то у вас будет готов настроен локальный сервер.
Если возникли проблемы, обращайтесь к нам за помощью, [email protected]
Установка Apache HTTP Server 2.2.22
Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.
Авторы: Виктор Волков, Иван Шумилов
Содержание:
Сайт разработчика: http://www.apache.org/
Дистрибутив (Apache 2.2 Win32 Binary): http://www.apachelounge.com/download/
Прямая ссылка: httpd-2.2.22-win32.zip
Вот он – великий и ужасный. Сгубивший на своём веку множество начинающих веб-разработчиков, сложивших головы на настройке его конфигурационных файлов. 🙂 Но мы с вами люди, крепких нервов и стальных желудков — поэтому, поехали.
Начальная установка и настройка
Распакуйте архив дистрибутива в каталог C:\Apache2.
Откройте в текстовом редакторе файл «C:\Apache2\conf\httpd.conf», являющийся основным конфигурационным файлом сервера Apache.
Ну а теперь держитесь. Женщинам, старикам и детям просьба – дальше не читать. За психическое состояние людей, дочитавших статью до конца – авторы ответственности не несут. 🙂
Правка файла httpd.conf
- Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ «#») данную строку:
LoadModule rewrite_module modules/mod_rewrite. so - Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
LoadModule php5_module «C:/php/php5apache2_2.dll» - Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
PHPIniDir «C:/php» - Найдите и раскомментируйте строку:
ServerName www.example.com:80
Отредактируйте ее следующим образом установив изначальное имя сервера:
ServerName localhost:80 - Найдите строку:
DocumentRoot «c:/Apache2/htdocs»
Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):
DocumentRoot «C:/apache» - Найдите данный блок:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
И замените его на нижеследующий:
<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory> - Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:
<Directory «c:/Apache2/htdocs»>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> - Найдите блок:
<IfModule dir_module>
DirectoryIndex index. html
</IfModule>
Замените его на:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.php
</IfModule> - Найдите строку:
ErrorLog «logs/error.log»
Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
ErrorLog «C:/apache/error.log» - Найдите строку:
CustomLog «logs/access.log» common
Замените на:
CustomLog «C:/apache/access.log» common - Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml - Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps - И, наконец, найдите и раскомментируйте строки:
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-autoindex. conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-default.conf
Сохраните изменения и закройте файл «httpd.conf»
Теперь откройте файл «C:\Apache2\conf\extra\httpd-vhosts.conf» и произведите в нем следующие изменения.
Существующие блоки примеров виртуальных хостов необходимо удалить, и вставить только нижеследующее:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot «C:/apache/localhost/www»
ServerName localhost
ErrorLog «C:/apache/localhost/error.log»
CustomLog «C:/apache/localhost/access.log» common
</VirtualHost>
Сохраните изменения и закройте файл «httpd-vhosts.conf»
Настройка конфигурационных файлов завершена, теперь необходимо установить сервис Apache2.2.
Установка сервиса Apache2.2 в картинках
Запускаем командную строку и вводим в ней «C:\Apache2\bin\httpd.exe -k install»
Вот что мы должны увидеть при успешной установке сервиса Apache2. 2.
Если все прошло успешно, движемся дальше — устанавливаем ручной запуск сервиса Apache2.2 для чего проходим путь: «Start» («Пуск») → «Control Panel» («Панель управления») → «Administrative Tools» («Администрирование») → «Services» («Службы»), в открывшемся окне управления служб выбираем строку «Apache2.2» и делаем на ней двойной щелчок, после чего во вкладке «General» («Общие») выбираем ручной запуск сервиса — «Startup type: Manual» («Тип запуска: вручную»). Это необходимо сделать для того, чтобы лишние службы не загружали систему. Учитывая, что домашний компьютер используется не только для веб-разработок, но и для многих других нужд, ручной запуск и остановка, непостоянно используемых сервисов, является наиболее приемлемым.
Создание структуры каталогов виртуальных хостов
В корне диска необходимо создать каталог «apache» — в нем будут лежать ваши виртуальные хосты (домены), глобальный файл журнала ошибок «error.log» (создается программой при первом запуске, автоматически), глобальный файл доступа «access. log» (создается автоматически). В каталоге «apache» создаем еще одну пустую папку — «localhost», в которой, в свою очередь, создаем папку «www», именно в последней и надо будет держать наше добро в виде локальных скриптов. Такая, казалось бы странная структура каталогов, продиктована схожей схемой построения каталогов в системах Unix, и призвана упростить в дальнейшем ее понимание и использование.
Пример создания виртуального хоста
При необходимости установки собственных виртуальных хостов сделайте следующее:
Откройте файл «httpd-vhosts.conf», и создайте в нём блок, примерно, следующего содержания:
<VirtualHost *:80>
# Папка, в которой будет корень вашего хоста.
DocumentRoot «C:/apache/test.ru/www»
# Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.
ErrorLog «C:/apache/test.ru/error. log»
# Файл журнала доступа к хосту.
CustomLog «C:/apache/test.ru/access.log» common
</VirtualHost>
Затем в каталоге «apache», создайте папку «test.ru» (прямо так, с точкой), в которой, в свою очередь, создайте папку «www».
Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
127.0.0.1 test.ru
127.0.0.1 www.test.ru
Теперь запустите сервер Apache выполнив в командной строке «C:\Apache2\bin\httpd.exe -k start», откройте браузер, введите в адресной строке «test.ru» или «www.test.ru» и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста («www.test.ru», если таковой существует), только закомментировав либо удалив строку: «127.0.0.1 www.test.ru», в вышеупомянутом файле «hosts».
Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/
Остановить работу Apache можно выполнив в командной строке «C:\Apache2\bin\httpd. exe -k stop». При необходимости перезагрузить Apache, выполните в командной строке «C:\Apache2\bin\httpd.exe -k restart».
Установка и настройка веб-сервера Apache – завершена.
Создание пакетных файлов для запуска и остановки сервисов
Согласитесь, что вручную редактировать файл «hosts» при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла «hosts» мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.
При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла «hosts» и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.
Файл vhosts-off. txt (может содержать одну единственную строку):
127.0.0.1 localhost
Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:
127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru
В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла «hosts», и stop-webserver.bat – для остановки сервисов и очистки файла «hosts».
Файл запуска start-webserver.bat:
@echo off
echo.
if not exist C:\apache\vhosts-on.txt goto no_vhosts
echo Create virtual hosts:
copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET start Apache2.2
NET start MySQL
Файл остановки stop-webserver.bat:
@echo off
echo.
if not exist C:\apache\vhosts-off.txt goto no_vhosts
echo Restore hosts file:
copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET stop Apache2. 2
NET stop MySQL
В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла «hosts», просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.
Одновременно с сервисами удобно запускать программу Apache Monitor, отображающую в системном лотке состояние сервера Apache, для чего можно создать еще один пакетный файл «start-webserver-monitor.bat», содержание которого аналогично файлу «start-webserver.bat» с добавлением в самый конец следующей строки:
start «» «C:\Apache2\bin\ApacheMonitor.exe»
Теперь для запуска всего инструментария вам понадобится запустить файл «start-webserver-monitor.bat», или «start-webserver.bat», а для остановки «stop-webserver.bat». При желании вы можете переименовать эти файлы, переместить их в любое другое место из папки «C:\apache», либо создать на данные файлы ярлыки, например, на рабочий стол.
Установка и отладка веб-сервера для сайта в UBUNTU
3 years ago |
44. 4K
Настройка веб-сервера для локального веб-сайта в Ubuntu является не простой задачей, но как это делать должен знать любой профессиональный веб-разработчик.
LAMP – что это
LAMP – это сочетание технологий Linux, Apache, MySQL, PHP, которые используются программистами для запуска интернет ресурсов, как личной разработки, так и проектов, функционирующих на известных CMS.
Как установить APACHE
Apache представляет собой веб-сервер с открытым исходным кодом. Его функционирование может быть описано следующим образом: На любой из поступающих запросов, данный сервер выдает ответ соответствующий запросу.
Другими словами говоря, обратившись к человеку с каким-то вопросом, он может, как дать ответ, так и нет. Однако, задав человеку вопрос, на который он дать ответ не в силах, прозвучит ответ: не знаю. Аналогичным образом функционирует и Apache, например, сервер покажет 404 ошибку, если вы обращаетесь к несуществующей странице.
Установка Apache производится посредством команды через терминал:
sudo apt-get install apache2
Если вы совсем новичок в Linux/Ubuntu, вы можете пройти курс Linux/GIT и вы получите базовые знания по командам Linux, а также научитесь работать с контролем версий кода GIT и сервисом BitBucket.
По завершению установки, следует проверить правильность функционирования веб-сервера. Сделать это можно при помощи введения ip адреса сервера в любом из существующих браузеров. В случае, если пользователь производил установку Apache локально, к примеру, на домашний ПК, ему следует ввести в браузере следующие цифры: 127.0.0.1. После этого должна будет отобразиться страница приветствия Apache.
Как установить PHP
Пользователь, который хочет, установить PHP на свой сервер, должен ввести следующую команду:
sudo apt-get install php5 php5-common libapache2-mod-php5 php5-cli php5-cgi php5-mysql
По завершению выполнения команды, необходимо ввести в терминале php -v. Благодаря этой команде должна будет отобразиться текущая версия php:
PHP 5.5.9-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v5.5.9-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
Если пользователь наблюдает это в своем терминале, то это говорит о том, что php установлен правильно и готов к работе.
Кстати, если вы плохо знакомы с языком программирования PHP, посмотрите эти уроки PHP для начинающих с нуля — это самые основы PHP программирования.
Как установить MYSQL
MySQL представляет собой базу данных, предусмотренную для хранения информации веб-ресурса. SQL является языком запросов, которые производятся непосредственно к БД MySQL.
Чтобы произвести установку MySQL пользователю необходимо ввести следующую команду:
sudo apt-get install mysql-server mysql-client
В ходе установки БД нужно будет придумать логин и ввести пароль, для локального пользователя можно задать логин root в БД MySQL. После, потребуется повторное введение данного пароля, поэтому придуманный пароль лучше записать на листок бумаги или в блокнот.
Чтобы пользователю было комфортней работать с БД MySQL следует произвести установку графического веб-клиента — PhpMyAdmin. Для этого вводят следующую команду:
sudo apt-get install phpmyadmin
В ходе установки данного клиента пользователь может произвести отладку связки веб-сервера и phpmyadmin в автоматическом режиме.
По завершению установки и отладки phpmyadmin следует произвести проверку функциональности. Сделать это можно при помощи введения ip адреса веб-сервера, но при этом необходимо и в конце дописать phpmyadmin через слеш.
http://127.0.0.1/phpmyadmin/
Если вы все сделали правильно, вы должны увидеть страницу авторизации phpmyadmin:
Заполните форму авторизации и введите логин и пароль, которые вы задавали на предыдущем этапе.
Кстати, если вы хотите научиться работать с базой данных MySQL (MariaDB), составлять SQL-запросы — посмотрите уроки MySQL для начинающих в курсе программирования PHP/MySQL.
Как настроить конфиг APACHE
Как правило, когда пользователь занимается созданием сайта, он хочет иметь возможность просмотра его ресурса на своем ПК в таком виде, как видят его в браузере другие люди, то есть чтобы локальный сайт был доступен не по IP-адресу, а через доменное имя. В этом случае обычной установки Apache будет недостаточно и для этого потребуется произвести настройку конфига Apache2.
На первом этапе отладки конфига пользователь должен создать каталог для своего интернет проекта на сервере. Сделать это можно перейдя в основной каталог apache:
cd /var/www/html/
Затем, создайте каталог для вашего сайта командой:
sudo mkdir superdomain
Чтобы пользователь мог корректировать каталог, следует поменять имя владельца каталога с пользователя root на свое имя пользователя или, предпочтительно, на имя пользователя для apache.
Выполнить это можно посредством введения в терминале следующих команд:
cd ..
Затем введите команду:
sudo chown -R user:user superdomain
Теперь перейдите в ваш каталог superdomain:
cd superdomain
Введите команду:
nano index.php
После ввода команды выше, вы откроете текстовый редактор nano. Давайте напишем простой PHP-скрипт:
<?php
echo "Это мой сайт superdomain!";
?>
Для того, чтобы сохранить изменения в редакторе nano, нажмите сочетание клавиш ctr+x и букву y, после этого нажмите на клавишу enter.
Далее рассмотрим, как отладить конфиг apache2. Произвести настройку можно посредством введения команды:
sudo nano /etc/apache2/sites-available/superdomain.com.conf
и вставить текст следующего содержания:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName superdomain. com
DocumentRoot /var/www/html/superdomain
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/superdomain/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
На следующем этапе пользователю необходимо выполнить нажатие сочетание клавиш ctr+x и букву y, а после нажать enter.
После этого следует перейти в каталог apache, посредством введения следующей команды:
cd /etc/apache2/sites-available/
и ввести еще одну команду:
sudo a2ensite superdomain.com.conf
В случае правильного введения команд на экране отобразится следующее:
Enabling site superdomain.com.
To activate the new configuration, you need to run:
service apache2 reload
Чтобы запустить новый конфиг apache на веб-ресурсе необходимо ввести команду:
service apache2 reload
Свидетельством правильного запуска команды станет полное отсутствие ошибок.
На последнем этапе запуска веб-ресурса на своем локальном домене пользователю необходимо в документе hosts ввести ip-адрес сервера и указать имя своего локального домена:
127.0.0.1 superdomain.com
Сам файл hosts в Linux находится в
/etc/hosts
в Windows вы его сможете найти по такому адресу:
C:\Windows\System32\drivers\etc\hosts
Все готово! Теперь осталось лишь сохранить файл hosts, и в браузере указать имя своего локального домена superdomain. com.
В результате на экране должно будет отобразиться результат выполнения файла index.php.
Выводы
Умение устанавливать и настраивать веб-сервер для сайта вам очень пригодится как в операционной системе Ubuntu, так и в Windows.
О том как устанавливать и настраивать локальный сервер для сайта всего несколькими кликами мыши в Windows 10, вы можете посмотреть видеоуроки PHP в курсе PHP/MySQL.
Настройка Apache и PHP
Web-сервер — сложный программный продукт. Поэтому для корректной работы на установленной системе его необходимо настроить. Настройка Apache и PHP с минимальной, но вполне рабочей конфигурацией, займет совсем немного времени.
По умолчанию настройки Apache расположены в файле «httpd.conf» в директории «conf«. Далее будут описаны основные директивы файла «httpd.conf«, которые нужно изменить.
Следуя данным инструкциям, описанных в разделах (Установка Web-сервера Apache в среде Windows и Установка интерпретатора PHP в среде Windows) в корневой директории сервера существует директория «C:\web_server\apache\htdocs «. Именно в ней находится файл «index.html«, который отражается по имени «localhost«.
За определение корневой директории сайта отвечает директива DocumentRoot в файле «C:\web_server\apache\conf\httpd.conf«.
DocumentRoot "C:/web_server/apache/htdocs"
Директива ServerName указывает, на какое доменное имя должно соответствовать вашему сайту.
В виртуальном хосте по умолчанию директива ServerName не указана, поэтому он будет отвечать на любые запросы, несоответствующие директивам ServerName в других виртуальных хостах.
Нам же нужно раскрыть комментарий поля ServerName, то есть удалить символ «#» перед параметром (установлен по умолчанию), потому что все, что идет после этого символа Apache игнорирует.
ServerName localhost:80
В поле DocumentRoot укажите тот каталог, в котором будут размещены ваши HTML файлы. По умолчанию этот каталог:
DocumentRoot "C:/web_server/apache/htdocs"
Найдите секцию, которая начинается «<Directory диск: />» и заканчивается «</ Directory>«. (Эти блоки содержат настройки для данного каталога и всех подкаталогов). По умолчанию он выглядит так:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
Его нужно заменить на секцию следующего вида:
<Directory C:/>
Options Indexes Includes
AllowOverride All
Allow from all
</Directory>
Этим вы обеспечите, что в данном блоке будут храниться настройки для всех каталогов по умолчанию (так как с:/ — корневой каталог). А именно, для всех каталогов по умолчанию является возможность автоматически генерировать индекс-список содержимого каталогов при просмотре его в браузере, а также поддержка SSI и разрешение на выполнение файлов .htaccess для индивидуальных настроек каталогов. Именно файл .htaccess используется во многих CMS. Более подробно читайте в статье: Настройка Httpd.conf для совместной работы с .htaccess.
Найдите аналогичный блок, который начинается «<Directory «C:/web_server/apache/htdocs»>» и заканчивается «</ Directory>«. Там будет много комментариев, не обращайте внимания. Эту секцию следует удалить, то есть все настройки для каталога со страницами должны зависеть от настройки по умолчанию, которые мы только настроили.
Инициализируем настройки DirectoryIndex так:
DirectoryIndex index.htm index.html
Это файлы индекса, которые автоматически возвращаются сервером при запросе к любому каталогу, если не указано имя html документа. Можно добавить дополнительно параметр index.php, но лучше дополнительные настройки делать в файлах .htaccess для каждого сайта отдельно.
Последнее, что нужно сделать, это включить модуль Rewrite. Для этого достаточно убрать решетку перед следующей строкой:
LoadModule rewrite_module modules/mod_rewrite.so
Далее переходим к настройкам модуля PHP.
Открываем файл «php.ini«, который находится в директории «C:\web_server\php\«. Далее будут описаны основные директивы, которые нужно изменить.
Желательно включить отчет об ошибках в окне браузера. Для этого нужно поставить значение «On» в директиве Display_errors.
display_errors = On
Еще нужно изменить значение директивы Short_open_tag, которая определяет, разрешается короткая форма записи тегов » ?>».
short_open_tag = On
Последнее что нужно сделать, это проверить подключение библиотеки php_mbstring.dll. Библиотека содержит функции для работы с много-байтными кодировками, к которым относятся кодирования восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие. Библиотека php_mbstring.dll должна присутствовать в директории «C:\web_server\php\ext\«. В конфигурационном файле php.ini необходимо существование строк:
[PHP_MBSTRING]
extension=php_mbstring. dll
Информацию о большинстве директив можно получить на странице Директивы PHP.
Вот и все, минимальные настройки веб-сервера сделаны. Теперь можно работать с веб приложениями. Чтобы проверить, нужно закачать в папку «C:\web_server\apache\htdocs\» нужен скрипт и открыть в браузере страницу «http://localhost/«.
Минимальные настройки Apache и PHP сделаны.
PHP не работает на сервере Ubuntu Apache
Я только что установил сервер php и apache на Ubuntu 17.04, но мой файл .php
не работает в моем браузере.
index.php:
Добро пожаловать!
php
echo "Hello World!";
?>
Только Добро пожаловать!
появился в браузере, и когда я просматриваю страницу, я вижу, что php-код комментируется.Я уже запустил сервер apache и до сих пор не понимаю, что не так. Пожалуйста, помогите мне, спасибо!
$ php -v
PHP 7.0.15-1ubuntu4 (cli) (построено: 28 февраля 2017 г., 21:33:59) (NTS)
Авторские права (c) 1997-2017 PHP Group
Zend Engine v3.0.0, Авторское право (c) 1998-2017 Zend Technologies
с Zend OPcache v7.0.15-1ubuntu4, Copyright (c) 1999-2017, Zend Technologies
$ sudo /etc/init.d/apache2 статус
apache2.service - HTTP-сервер Apache
Загружено: загружено (/lib/systemd/system/apache2.service; включено; предустановка поставщика: включено)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Активен: активен (работает) с Вт 2017-04-25 14:38:55 +07; 10мин назад
Процесс: 11578 ExecStop = / usr / sbin / apachectl stop (код = завершен, статус = 0 / УСПЕХ)
Процесс: 11604 ExecStart = / usr / sbin / apachectl start (код = завершен, статус = 0 / УСПЕХ)
Основной PID: 11619 (apache2)
Задач: 55 (лимит: 4915)
Память: 9.7 млн
Процессор: 429 мс
CGroup: /system.slice/apache2.service
├─11619 / usr / sbin / apache2 -k start
├─11663 / usr / sbin / apache2 -k start
└─11664 / usr / sbin / apache2 -k start
25 апреля, 14:38:55 g5080 systemd [1]: запуск HTTP-сервера Apache ...
25 апреля, 14:38:55 g5080 apachectl [11604]: AH00558: apache2: Не удалось надежно определить… sage
25 апреля, 14:38:55 g5080 systemd [1]: запущен HTTP-сервер Apache.
Подсказка: некоторые строки были увеличены в многоточие, используйте -l, чтобы отобразить их полностью.
PHP: Apache 2.x в системах Unix
Я успешно установил Apache 2.2.11 и PHP 5.2.8 под Red Hat 9.0 на Pentium 166 с 32 МБ ОЗУ.
Хотя я использовал RH9, наихудший случай, эти примечания, вероятно, также подходят для дистрибутивов на основе RH (Red Hat Enterprise, Fedora, CentOS …)
Если вы хотите установить MySQL, его необходимо установить до PHP потому что PHP требует наличия некоторых библиотек.
При выборе двоичного дистрибутива MySQL важно загрузить все четыре пакета: MySQL-server, MySQL-devel, MySQL-client и MySQL-shared.Примечание: MySQL был в комплекте с PHP 4, но его больше нет в PHP 5.
Затем вам нужно установить Apache до PHP, потому что PHP снова требует наличия некоторых библиотек. Я установил Apache 2 из исходников, используя самую последнюю доступную версию — 2.2.11.
Я установил PHP 5.2.8 из исходников. Здесь у меня было несколько проблем, но ни одну из них я не мог решить легко, некоторые из них с небольшой помощью на разных форумах, которые я нашел через Google.
Напоминание: когда он говорит, что вам нужен пакет с именем xyz, и вы замечаете, что есть еще один с именем xyz-devel, возьмите его.
Большинство пакетов, которые я получил:
http://legacy.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/
Аналогичная страница существует для других версий Red Hat
и:
http://rpmfind.net/
На этом сайте есть обновленные версии некоторых пакетов. Убедитесь, что вы используете только ту версию, которая указана для вашей версии (в моем случае Red Hat 9.0), иначе она вряд ли сработает.
У вас уже установлены glibc и glibc-common, но вам нужно получить glibc-devel и glibc-kernheaders.Убедитесь, что соответствует версии glibc (rpm -q glibc). Примечание: когда он говорит, что заголовок ядра является обязательной зависимостью, это glibc-kernheader (а не исходный код ядра). Вам также понадобятся binutils (не обязательно совпадать с версией) и gcc и cpp (версия должна совпадать).
Вам нужен zlib-devel (zlib, вероятно, уже установлен, соответствует вашей версии).
Если вы устанавливаете расширение GD, фактическая библиотека уже связана с PHP 5 (используйте ее, там были внесены некоторые изменения, поэтому не обновляйте), но вам нужно будет установить libpng и libpng-devel ( совпадать с версией или отключать в configure, если вы не хотите) и libjpeg (без -devel с этим).
Вам также понадобится libxml2. Теперь возникла проблема, потому что PHP требует, чтобы libxml2 был 2.6 или выше, но Red Hat поставляла только 2.5.4-1 для RH9 (если у вас более свежий дистрибутив, вам может повезти больше). Немного погодя, я решил взять исходный код самого последнего дистрибутива на официальном сайте (http://xmlsoft.org/) и скомпилировать.
Надеюсь мой пост кому-нибудь пригодится. Поделитесь, пожалуйста, своим опытом компиляции / установки для вашей конкретной платформы и настройки.Вспомните, как тяжело было вам в первый раз. Признаюсь, моя первая установка сервера заняла у меня почти неделю, и я был рад, что мне помогли другие.
Установка PHP на Apache 2
На этой странице описывается, как установить php на Apache2. PHP 4.3.0 с Apache 2.0.46 использовался на Redhat 8.
Установите Apache
Следуйте этим инструкциям, чтобы установить Apache2 из исходного кода.
Загрузите последние исходные коды PHP.
Загрузите tar.gz с php.net
Извлеките исходный код
Извлеките исходный код в каталог под / usr / local / src
ср php-4.3.0.tar.gz / usr / local / src cd / usr / local / src gunzip php-4.3.0.tar.gz tar -xvf php-4.3.0.tar rm -f php-4.3.0.tar компакт-диск php-4.3.0
Установить параметры компилятора (необязательно)
Если вы хотите, вы можете установить некоторые параметры компилятора, обычно это делается для создания оптимизированного кода.Одна из очень распространенных вещей, которую нужно сделать, — установить CFLAGS = -O2
или CFLAGS = -O3
(это О, не ноль), который сообщает компилятору, сколько оптимизации кода нужно сделать, установка более высокого значения дает больше оптимизация, но также требует больше времени для компиляции и потенциально может вызвать неожиданные вещи (не часто). O2 — довольно безопасный уровень для использования. Для этого введите следующее:
экспорт CFLAGS = -O2
Вы также можете указать компилятору, какой процессор вам нужен для выполнения дополнительных оптимизаций, я не буду здесь вдаваться в подробности, но если вам интересно, ознакомьтесь с руководством GCC.
Настройте php с помощью autoconf
Теперь вам нужно установить параметры конфигурации и проверить наличие всех библиотек, необходимых для компиляции. Это делается с помощью сценария под названием configure, чтобы узнать, какие параметры вы можете установить, введите следующее:
./configure --help
Вы увидите, что существует довольно много вариантов конфигурации, посмотрите в документации страницу, посвященную параметрам настройки. Мы скажем configure включить mysql, а также расскажем, где найти инструмент apxs
Apache для создания модулей.
настроить --with-mysql --with-apxs2 = / usr / local / apache2 / bin / apxs
Компиляция PHP
make
Установить PHP
сделать установку
Сказать apache загрузить модуль
Отредактируйте httpd.conf /usr/local/apache2/conf/httpd.conf
в текстовом редакторе. Добавьте следующее в httpd.conf
Включить conf.d / *. Conf
Это позволяет вам создать определенный файл конфигурации для каждого устанавливаемого модуля, например php.conf
Теперь создайте каталог в своем каталоге apache, если его там нет, с именем conf.d
mkdir /usr/local/apache2/conf.d cd /usr/local/apache2/conf.d
Создайте файл с именем php.conf, расположенный по адресу /usr/local/apache2/conf.d/php.conf
, с содержимым:
# Конфигурация PHP для Apache # # Загрузить модуль apache # LoadModule модули php4_module / libphp4.so # # Заставить интерпретатор PHP обрабатывать файлы с расширением .php. # <Файлы *.php> SetOutputFilter PHP SetInputFilter PHP LimitRequestBody 9524288 Приложение AddType / x-httpd-php .php Приложение AddType / x-httpd-php-source .phps # # Добавить index.php в список файлов, которые будут использоваться как каталог # индексы. # DirectoryIndex index.php
Обратите внимание, что вы могли просто вставить указанное выше в файл httpd.conf и при желании опустить шаг conf.d. Я считаю, что подход conf.d — более чистый способ сделать это.
Вот и все, перезапустите apache, и PHP должен заработать.
Будьте в курсе
При установке программного обеспечения из исходного кода важно не отставать от патчей безопасности. Есть много способов оставаться в курсе, я создал удобный сервис под названием stack.watch, который вы можете использовать для отслеживания исправлений безопасности php, обновлений безопасности Laravel или уязвимостей безопасности веб-сервера Apache httpd.
Примечание. Чтобы установить поддержку PostgreSQL на redhat 9 с помощью php / apache2, вам необходимо установить библиотеки postgresql, разработать rpms и добавить —with-pgsql в строку конфигурации
.
Спасибо, Джонатан Кроу за предложение директивы AddType.
Установка PHP на Apache 2 впервые было опубликовано 1 декабря 2002 года.
PHP — HTTPD — Apache Software Foundation
Целью этого документа является перечисление всех возможных сценариев конфигурации, позволяющих httpd обслуживать содержимое php.
Использование proxy_fcgi и php-fpm (для 2.4)
Этот метод предпочтительнее всех других рецептов и подходит для версий 2.4 и новее. Это не только позволяет вам быстрее обнаруживать и диагностировать проблемы, связанные с PHP, но также вы сможете использовать более быстрый и масштабируемый многопоточный mpm, такой как event или worker, что значительно сократит объем памяти вашего httpd-сервера.
См. Следующую статью
Использование php с fastcgi (для 2.2 и старше)
Этот метод подходит для версий 2.2 и старше. Он позволяет использовать MPM с многопоточным управлением, например worker, что значительно снижает требования к оперативной памяти на вашем сервере.
См. Следующую статью
Использование php с fcgid (для 2.2 и старше)
Этот метод подходит для версий 2.0 или 2.2. Это позволяет использовать многопоточную mpm-систему, такую как worker, что значительно снизит требования к оперативной памяти на вашем сервере.И mod_fcgid — официальный модуль Apache.
См. Следующую статью
Настройка wordpress с помощью php-fpm
См. Следующую статью
Использование mod_php в качестве DSO с многопоточным mpm (2.0 и новее)
Этот подход идентичен следующему рецепту, за исключением того, что можно использовать многопоточный mpm, такой как event или worker. Основное требование состоит в том, что системные библиотеки php и DSO должны быть (пере) скомпилированы с флагами потокобезопасности.
Если используется apache httpd 2.0 или более ранняя версия, его необходимо перекомпилировать, чтобы изменить mpm. Для версии 2.4 достаточно загрузки соответствующего модуля mpm.
Следует проявлять особую осторожность, чтобы гарантировать, что рабочие процессы перезапускаются достаточно часто (MaxConnectionsPerChild> 0), поскольку дочерние процессы по-прежнему подвержены утечкам памяти php, а процессы могут потреблять большие объемы оперативной памяти и истощать доступные системные ресурсы.
Это, вероятно, наименее используемый подход из-за головной боли, связанной с поддержанием потокобезопасной библиотеки php, и поскольку большинство дистрибутивов Linux не поставляют эти пакеты.
Использование mod_php в качестве DSO (устаревшее)
Этот метод является самой старой и самой медленной конфигурацией из возможных. Он подходил для версии 2.2 и старше и требует использования prefork mpm.
Почему вам больше не следует использовать mod_php с prefork mpm
- mod_php загружается в каждый процесс httpd все время. Даже когда httpd обслуживает статический / не php-контент, эта память используется.
- mod_php не является потокобезопасным и заставляет вас придерживаться prefork mpm (многопроцессный, без потоков), который является самой медленной конфигурацией
Как его использовать в любом случае
Сначала необходимо загрузить модуль:
LoadModule php5_module lib / httpd / modules / libphp5.so
Затем добавьте обработчик для dso:
# Затем настройте обработчик для всех файлов, которые заканчиваются на .php
# Регулярное выражение, такое как \. (php | php4 | php5) $ can также может использоваться для поддержки дополнительных расширений
SetHandler application / x-httpd-php
Ссылки:
Официальные инструкции по установке и настройке php
Общие проблемы:
Почему мой файл php предлагается для загрузки с помощью mod_php?
Как изменить версию PHP в Apache на Ubuntu
Адарш Соджитра, 31 июля 2019 г.
Иногда вам нужно изменить версию PHP на вашем сервере.Изменение здесь означает переход на более раннюю или более раннюю версию. Вам решать, хотите ли вы обновить версию PHP или перейти на более раннюю. Если вы используете Apache с PHP-FPM, вы можете следовать этому короткому руководству, чтобы обновить версию PHP на вашем сервере Ubuntu.
Если вы используете модуль PHP в Apache, вам просто нужно отключить модуль PHP, который вы используете прямо сейчас, и включить модуль PHP с другой версией. Однако, если вы используете PHP-FPM, вы можете прочитать статью, чтобы изменить версию PHP.
Есть некоторые предварительные условия для выполнения этого руководства. На вашем сервере должен быть установлен Apache с PHP-FPM. И у вас должны быть привилегии sudo на сервере. В этом случае нам нужны привилегии sudo, потому что мы будем обновлять файлы конфигурации Apache.
Изменить версию PHP в Apache на Ubuntu
Первое, что нам нужно сделать, это установить желаемую версию PHP на наш сервер.
Установите желаемую версию PHP
Чтобы установить PHP, мы должны добавить репозиторий PHP на наш сервер, чтобы мы могли напрямую устанавливать различные версии PHP с помощью apt.Если вы используете Ubuntu 16.04 или 18.04, возможно, этот репозиторий уже добавлен в систему. Однако, если вы не уверены, просто запустите эти команды, так как они будут перезаписаны!
Выполните следующую команду, чтобы добавить репозиторий в список источников.
$ sudo add-apt-репозиторий ppa: ondrej / php -y $ sudo apt-get update
После этого мы готовы установить желаемую версию PHP на наш сервер. Выполните команду в следующем формате, чтобы установить на свой сервер более новую или старую версию PHP.
$ sudo apt-get install php7.X-fpm php7.X-curl php7.X-mbstring php7.X-mysql -y
Необходимо заменить X на желаемый номер версии PHP. Например, если вы хотите установить PHP7.2 на свой сервер, выполните следующую команду.
$ sudo apt-get install php7.2-fpm php7.2-curl php7.2-mbstring php7.2-mysql -y
Обратите внимание, что мы включили только ограниченное количество расширений PHP в этот процесс установки. Однако не стесняйтесь устанавливать столько расширений PHP, сколько вам нужно.
После того, как на вашем сервере будет установлена более новая версия PHP, пора обновить файл конфигурации Apache, чтобы изменить версию PHP.
Обновить версию PHP в конфигурации Apache
Если вы следовали нашему руководству по настройке Apache с PHP-FPM на своем сервере, выполните следующую команду, чтобы открыть файл конфигурации PHP-FPM и FastCGI в режиме редактирования.
$ судо нано /etc/apache2/conf-available/php-fpm.conf
Содержимое файла конфигурации должно выглядеть следующим образом.
AddHandler php7-fcgi .php Действие php7-fcgi / php7-fcgi Псевдоним / php7-fcgi / usr / lib / cgi-bin / php7-fcgi FastCgiExternalServer / usr / lib / cgi-bin / php7-fcgi -socket /run/php/php7.1-fpm.sock -pass-header Авторизация <Каталог / usr / lib / cgi-bin> Требовать все предоставлено
Теперь, когда мы уже определили версию PHP, которую хотели использовать в этом файле конфигурации.Теперь вам просто нужно обновить версию PHP в этом файле. Если вы не создавали этот файл раньше, вы можете просто вставить в него приведенный выше код. После этого нажмите CTRL + X , затем Y , а затем клавишу Enter , чтобы сохранить файл конфигурации.
Чтобы применить эти изменения, мы должны перезапустить сервер Apache. Выполните следующую команду, чтобы перезапустить сервер Apache.
$ sudo service apache2 перезапуск
После перезагрузки версия PHP на вашем сервере должна быть изменена.Вот как легко изменить версию PHP, если вы следовали нашему руководству по настройке сервера Apache с PHP-FPM.
Другие чемоданы
Если вы используете PHP-модуль Apache для запуска PHP с вашим сервером Apache, вы можете просто отключить модуль Apache для PHP вместе с mpm_prefork и включить файл конфигурации, который мы только что создали. Чтобы отключить модуль Apache для PHP и mpm_prefork, выполните следующие команды.
$ sudo a2dismod php7.X
$ sudo a2dismod mpm_prefork
Теперь нам нужно включить файлы конфигурации mpm_event и php-fpm.Для выполнения этих задач выполните следующие команды.
$ sudo a2enmod mpm_event
$ sudo a2enconf php-fpm
После этого перезапустите службу Apache с помощью команды, приведенной в предыдущем разделе этого руководства, и все готово.
Заключение : Итак, вот как вы можете изменить версию PHP на своем сервере Apache в операционной системе Ubuntu. Мы рекомендуем вам использовать mpm_event с PHP-FPM на Apache, потому что эта конфигурация очень быстрая и обеспечивает наилучшую производительность, которую вы можете получить на сервере Apache.Еще один случай. Если вы используете код для передачи запросов в PHP FPM непосредственно в конфигурации виртуального хоста, вам просто нужно обновить версию PHP в конфигурации виртуального хоста и перезапустить веб-сервер, вот и все!
Сообщите нам, если вам нужна помощь в изменении версии PHP на вашем сервере. Если вы являетесь клиентом InterServer, вы можете обратиться за помощью в нашу службу поддержки, мы поможем вам в кратчайшие сроки.
Как исправить Apache 2, не выполняющий файлы PHP
Если ваш веб-сервер Apache 2 не может выполнять файлы PHP, узнайте, как быстро решить эту проблему.
Изображение: Джек Уоллен
Сколько раз вы настраивали веб-сервер с Apache 2 только для того, чтобы обнаружить, что при попытке просмотра страницы с расширением .php страница либо пытается сохранить на локальном диске, либо отображает код PHP в виде браузер? Это плохо на нескольких уровнях. Во-первых, ваш сайт не работает должным образом; еще хуже то, что кто-то может получить представление о вашем коде из первых рук, что является не только разочарованием, но и возможной проблемой безопасности.
Учитывая, что это простое решение, нет причин избегать работы с PHP и Apache 2. Но как это исправить? Позволь мне показать тебе. Примечание: Я демонстрирую этот процесс на Ubuntu Server 16.04, где запущены последние версии Apache 2 и PHP.
SEE: Контрольный список питания: Управление серверами и устранение неполадок (Tech Pro Research)
Измените файл .conf
Первое, что мы должны сделать, это изменить основной файл конфигурации Apache 2.Для этого откройте окно терминала и введите команду:
sudo nano /etc/apache2/apache2.conf
При открытом apache2.conf все, что вам нужно сделать, это добавить в конец файла следующее:
Приложение SetHandler / x-httpd-php
Сохраните и закройте apache2.conf .
Включение / отключение модулей
Для правильной работы PHP необходимо отключить модуль mpm_event и включить модули mpm_prefork и php7.Для этого вернитесь в окно терминала и введите команду:
sudo a2dismod mpm_event && sudo a2enmod mpm_prefork && sudo a2enmod php7.0
Перезапустите Apache 2
Вы готовы перезапустить Apache 2. Поскольку мы отключили / включили модули, мы должны выполнить полный перезапуск Apache 2 (вместо перезагрузки файлов конфигурации). Чтобы перезапустить Apache, вернитесь в окно терминала и введите команду:
sudo service apache2 restart
Теперь у вас должна быть возможность указать браузеру на файл PHP и посмотреть, как он выполняется правильно, в отличие от сохранения на локальный диск или отображения кода в браузере.
Вот и все — Apache 2 должен работать именно так, как вам нужно.
Простое исправление
Я предупреждал вас, что это будет простое исправление. Apache 2 — это очень удобный для администратора веб-сервер для настройки и управления. Хотя можно было бы подумать, что выполнение PHP будет нестандартной функцией, решить эту проблему очень легко.
Счастливого Apache’ing!
Еженедельный бюллетень с открытым исходным кодом
Вы не хотите пропустить наши советы, руководства и комментарии по ОС Linux и приложениям с открытым исходным кодом.Доставка по вторникам
Зарегистрироваться Сегодня
Также см.
Отключить PHP на Apache
Этот пост является ответом на вопрос, заданный в моей статье «Отключить PHP в каталоге с Apache .htaccess», в котором спрашивается, как полностью отключить PHP в Apache, или как его спросили: «Не могли бы вы сказать мне, как я могу отключить PHP на Apache (запустить Apache без PHP)».
Это зависит от операционной системы и дистрибутива
Полное отключение PHP в Apache зависит от операционной системы и дистрибутива. Ниже показано, как это сделать с тем, к чему у меня есть доступ в настоящее время.
Debian 5
Это также должно работать для других дистрибутивов на основе Debian 5.
Выполните следующее, используя sudo или от имени пользователя root:
/ usr / sbin / a2dismod php5 /etc/init.d/apache2 перезапуск
Чтобы вернуться назад и снова запустить PHP, снова используя sudo или от имени пользователя root:
/ usr / sbin / a2enmod php5 / etc / init.d / apache2 restart
CentOS 5
Это также должно работать для других дистрибутивов на базе Red Hat Enterprise Linux 5 и CentOS 5.
Выполните следующее, используя sudo или от имени пользователя root:
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf~ /etc/init.d/httpd перезапуск
Для возврата и повторного запуска PHP, снова используя sudo или от имени пользователя root:
mv /etc/httpd/conf.d/php.conf~ /etc/httpd/conf.d/php.conf /etc/init.d/httpd перезапуск
OSX Snow Leopard с MAMP 1.9
Примечание. Я сам не пробовал это делать, поэтому на самом деле это может не сработать.
Я не видел способа отключить PHP в конфигурации графического интерфейса пользователя (хотя вы можете переключаться между PHP 5.