Веб-сервер. [Apache2, MySQL, php5, phpmyadmin /etc]

Автор Thunder, 08 мая 2011, 16:09:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Thunder

FAQ

Какие пакеты ставить?
Открыть содержимое (спойлер)
sudo apt-get install apache2 php5 php5-mysql ?mysql-server phpmyadmin
apache2 - веб-сервер
php5 - интерпретатор языка
php5-mysql - для работы с мускулем из php
mysql-server - СУБД
phpmyadmin - веб-интерфейс для управления БД в мускуле.
[свернуть]


Как настроить апач?
Открыть содержимое (спойлер)

Свои настройки следует писать в /etc/apache2/conf.d, т.е. создать там файл, например, myconf.conf и определить в нём свои настройки.
/etc/apache2/conf.d/myconf.conf

## Файл личных настроек веб-сервера Apache, для добавления настройки раскомментируйте уже имеющиеся либо добавьте свою.

## Чтобы устранить предупреждение при перезапуске апача (хотя в целом на производительности это не отразится)
ServerName localhost

## Eсли апач не понимает php или предлагает сохранить php-файл
AddType application/x-httpd-php .php .phtml

## Установка кодировки UTF-8 по умолчанию
AddDefaultCharset UTF-8

[свернуть]


Как перезапустить apache?
Открыть содержимое (спойлер)
После внесения изменений в настройки апача, его необходимо перезапускать.

Перезапуск / старт / остановка сервера.
/etc/init.d/apache2 restart

/etc/init.d/apache2 start

/etc/init.d/apache2 stop
[свернуть]


Как настроить виртуальные хосты?
Открыть содержимое (спойлер)
Есть несколько способов, я же расскажу о том как повесить несколько виртуальных хостов на один IP c доступом к ним по имени сервера.

В /etc/hosts прописываем наши хосты:
127.0.0.1    host2.server1 host1.server1

Идём в /etc/apache2/sites-available
и создаём там файлы, названиями которых будут названия, создаваемых серверов, например host1.server1 и host2.server1
в эти файлы пишем (здесь показано простейшее, подробнее можно заценить в файле default):

/etc/apache2/sites-available/host1.server1

<VirtualHost *:80>
    ServerName host1.server1
    DocumentRoot /home/thunder/www/host1.server1
    <Directory /home/thunder/www/host1.server1>
        AllowOverride All
    </Directory>
</VirtualHost>


/etc/apache2/sites-available/host2.server1

<VirtualHost *:80>
ServerName host2.server1
DocumentRoot /home/thunder/www/host2.server1
<Directory /home/thunder/www/host2.server1>
AllowOverride All
</Directory>
</VirtualHost>


Далее создаём симлинки на эти файлы в директории /etc/apache2/sites-enabled с помощью команды a2ensite:

a2ensite host1.server1 host2.server1

(Удаляются симлинки таким же образом командой a2dissite)

Перезапускаем Апач, пробуем в браузере
http://host1.server1
http://host2.server1

[свернуть]


Как установить php-apc (opcode cacher, ускоритель/акселератор php, кэш)?
Открыть содержимое (спойлер)
apt-get install php-apc
Акселератор PHP — программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.
Файл настройки /etc/php5/apache2/conf.d/apc.ini. Установки по рекомендациям CMS 1C-Битрикс:
extension=apc.so
realpath_cache_size=4096k
apc.ttl=1
apc.max_file_size=4M

[свернуть]


Как установить php5-xcache (opcode cacher, ускоритель/акселератор php, кэш)?
Открыть содержимое (спойлер)

Если у вас уже стоит APC - удалите его предварительно!
apt-get install php5-xcache
Акселератор PHP — программа, ускоряющая исполнение сценариев PHP интерпретатором путём кэширования их байткода.
Файл настройки /etc/php5/apache2/conf.d/xcache.ini. Установки по рекомендациям CMS 1C-Битрикс:
realpath_cache_size = 4096k
xcache.size  =                40M
xcache.slots =                8K
xcache.ttl   =                 1

Также можно указать число ядер вашего процессора:
xcache.count =                 2
понятно, что это для 2-х голового. Однако, я получил при этом падение производительности в Битриксе на 5-10%. Попробуйте, мб в вашем случае будет рост.
[свернуть]


Как выключить автозапуск apache2 и mysql?
Открыть содержимое (спойлер)
ВАМ ЭТО ДЕЙСТВИТЕЛЬНО НУЖНО? Эти демоны стартуют в родной для себя среде в разы быстрее чем денвер в винде, думаю от 1 сек к времени загрузки ОС и 10 мб ОЗУ вам хуже не станет, а лишних телодвижений не будет...
Вырубаем автостарт Апача:
update-rc.d -f apache2 remove
Мускуля:
nano /etc/init/mysql.conf
комментируем строки:
start on (net-device-up
          and local-filesystems
          and runlevel [2345])

т.е. должно быть так:
#start on (net-device-up
#          and local-filesystems
#          and runlevel [2345])

[свернуть]


Как разрешить доступ к БД MySQL из мира?
Открыть содержимое (спойлер)
по умолчанию mysql не принимает tcp соединения т.к. прослушивает только 127.0.0.1

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1


Самое простое - просто закомментировать эту строку.

И надо добавить пользователя, который с разных мест и из разных программ может соединяться с базой, например "admin":
GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY 'my_admin_password' WITH GRANT OPTION;
[свернуть]


Как сделать откат до версии php5.2?
Открыть содержимое (спойлер)

[свернуть]


Как установить Zend Optimizer?
Открыть содержимое (спойлер)
Для начала нужно выполнить п.7, чтобы у нас была версия php5.2
Скачайте нужный вам дистрибутив (32 или 64 бит) по адресу <!-- m -->http://www.zend.com/en/products/guard/downloads<!-- m --> (необходима регистрация).

Затем на сервере откройте архив, перейдите в директорию

/data/5_2_x_comp/

Создайте необходимую директорию
mkdir /usr/local/lib/Zend
и распакуйте туда файл ZendOptimizer.so

Затем
echo "zend_extension=/usr/local/lib/Zend/ZendOptimizer.so" >> /etc/php5/conf.d/zend.ini

После этого перезапустите apache2 и проверьте работу Zend.
[свернуть]


========================================

Редакторы, CMS /etc

Pедакторы и IDE
Открыть содержимое (спойлер)
Мощные редакторы и IDE

Минималистичные редакторы

  • medit (gtk)
  • leafpad (gtk)
  • nano
  • vi

Java-based IDE

Я пользуюсь Komodo Edit 6
[свернуть]


Системы управления контентом (Content Managment Systems)
Открыть содержимое (спойлер)

[свернуть]


Фреймворки (Frameworks)
Открыть содержимое (спойлер)

delldeb

Установил apache2 php5 php5-mysql mysql-server phpmyadmin, все установилось без ошибок.
Затем в phpmyadmin (http://localhost/phpmyadmin), создал базу mysql.
Скачал архив joomla и распаковал в папку  /var/www/seite, потом поменял права на папку chmod -R 777 /var/www/seite
И теперь проблема захожу в браузере http://localhost/seite, он выдает вместо установки joomla
Открыть содержимое (спойлер)

Not Found
The requested URL /seite was not found on this server.
Apache/2.4.10 (Debian) Server at 127.0.0.1 Port 80 
[свернуть]
Подскажите, пожалуйста, если кто знает?
Система debian jessie amd64, kde.
Debian 11.

delldeb

ёмаё, не в ту папку распаковал джумлу, надо в var/www/html. Все ок.
Debian 11.

Sonnex

Есть проблема с командой
root@Black:/etc/apache2/sites-available# ls
000-default.conf  host1.server1  mytestsite.dev.save
default-ssl.conf  host2.server1  studio.ru.conf
root@Black:/etc/apache2/sites-available# a2ensite host1.server1 host2.server1
ERROR: Site host1.server1 does not exist!
ERROR: Site host2.server1 does not exist!

Rubik


PeterBumblebee

Цитата: Rubik от 27 августа 2015, 01:25:22
подскажите /etc/apache2/conf.d нет conf.d
Зато есть /etc/apache2/conf-available, кладёте туда свой <someconfig>.conf, затем от рута выполняете a2enconf <someconfig>
Who the hell cares?

sen4x

#6
спасибо автору за тему, с неё начал и её закончу.
у меня LMDE 2 x64, apache 2.4.10 (более 10 лет, в конфиги апачи не залазил и то под виндой)
большая часть применима, но вот с вертуальными хостами, была ошибка 403,
к счастью решил проблему методам исключения, как это всегда делается.
в файле apache2.conf добавил после:
Открыть содержимое (спойлер)

#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>


следующее:

<Directory /home/*/public_html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

[свернуть]

так, как в /etc/apache2/sites-available/sen4x-host.conf
Открыть содержимое (спойлер)

<VirtualHost *:80>
    ServerName sen4x.host
    DocumentRoot /home/sen4x/public_html
    <Directory /home/sen4x/public_html>
Options Includes FollowSymlinks
AllowOverride All
DirectoryIndex index.php index.html index.htm
    </Directory>
</VirtualHost>
[свернуть]

таким образом решил проблему доступа, ошибка 403

ps:
Обновил систему LMDE2 --> Debian 9

Чуток поменялась установка:
Открыть содержимое (спойлер)

1)
sudo apt-get install apache2 php libapache2-mod-php php-mysql mysql-server phpmyadmin

2)
sudo mysql_secure_installation (на всё отвечаем Y)
[свернуть]

как оказывается, под Debian 9, в phpMyadmin нельзя зайти
введя root и его пароль
, поэтому смотрим дальше:

Открыть содержимое (спойлер)

3)

sudo mysql -u root -p
вводим пароль который задали в  пункте 2):
[свернуть]

теперь поочерёдно прописываем и выполняем следующие команды MariaDB [(none)]>
Открыть содержимое (спойлер)

create user 'test'@'localhost' identified by 'пароль';

grant all privileges on *.* to 'test'@'localhost';

flush privileges;

exit;

[свернуть]

Теперь переходим к нашему интерфейсу phpmyadmin http://localhost/phpmyadmin/
вводим имя пользователя test  и его пароль, какой вы там присвоили.

PS: прикрутим ещё Perl, вспомним былое
Открыть содержимое (спойлер)

1)
sudo nano /etc/apache2/mods-enabled/dir.conf
# строка 2: проверяем, чтоб в данной строке были имена следующих файлов, если их нет, то дописываем

DirectoryIndex index.html index.cgi index.pl

у меня к примеру, строка выглядит так:
DirectoryIndex index.html index.cgi index.pl index.php index.phtml index.xhtml index.htm

2)
sudo nano /etc/apache2/mods-enabled/mime.conf

# строка 219: проверяем, что данная строка была активка, чтоб запускались cgi и pl файлы

AddHandler cgi-script .cgi .pl

3)
sudo nano /etc/apache2/sites-enabled/000-default.conf

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# строка 13: добавляем
<Directory "/var/www/html">
    AllowOverride All
    Options +ExecCGI
    Require all granted
</Directory>


4) делаем модуль cgid активным
sen4x@noob:~$ sudo a2enmod cgid

Enabling module cgid.
To activate the new configuration, you need to run:
service apache2 restart

5) перезапускам apache2, чтоб все правки применились
sen4x@noob:~$ sudo systemctl restart apache2

6) создаём файл index.pl с кодом
sen4x@noob:~$ sudo nano /var/www/html/index.pl


#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html>\n<head><meta charset='utf-8'></head>\n<body>\n";
print "<center>Perl работает (=</center>";
print "</body>\n</html>\n";



7) делаем его исполняемым, если не присвоить право доступа 705, то при заходе http://localhost/index.pl выведется ошибка 500
sen4x@noob:~$ sudo chmod 705 /var/www/html/index.pl

PS: ps
нечто подобное  производим и с хостами, к примеру:
в файл /etc/apache2/sites-enabled/sen4x-host.conf

<VirtualHost *:80>
    ServerName sen4x.host
    DocumentRoot /home/sen4x/public_html
    <Directory /home/sen4x/public_html>
Options Includes FollowSymlinks
AllowOverride All
# добавил исполнение cgi и pl
Options +ExecCGI
DirectoryIndex index.php index.phtml index.html index.htm index.pl index.cgi
    </Directory>
</VirtualHost>


Perl как правило, нет необходимости ставить, так как он стоит в системе по умолчанию
проверить это можно в консоли введя команду perl -v.


ЗЫ:

http://www.server-world.info/en/
ispconfig

Пробовал ставить ispconfig, для того, что была возможность
выбора в использование нужной версии php, по данному мануалу: 
http://linux-notes.org/ustanovka-ispconfig-na-debian-ubuntu-mint/
снёс всё нахрен, всё осыпалось, долго вычищал систему от дерьма,
сносить и заново ставить, но это вообще нубячество.

получилось с горепополам, но того, что хотел, ну не как не добился,
и всё же нашёл вот такой вариант установки, спустя 5 минут, всё
настроено и работает:
https://gist.github.com/jniltinho/ff9bef16fbf8dc8ced3b34313d58e1ab#file-install_ispconfig3_debian-sh

смена версий php в ручную
sudo update-alternatives --config php
[свернуть]
[свернуть]


1) если долго мучатся, что нибудь получится.
2) должно получиться, что-то конкретное.
3) надо представлять хотя бы, что должно получится.

n0m4d

#7
Спасибо, решил проблему неработоспособности phpMyAdmin который работал на версии 7.2, а на php5.6 версии отказывался, доустановил пакет в 140кб:

sudo apt install php5.6-mysql

В случае ошибки:
The mbstring extension is missing. Please check your PHP configuration.
(необходимо доустановить следущее
sudo apt install php5.6-mbstring
и перезагрузить апачи
)

и раздокументрировал в php.ini строку для использования коротких тегов <? и ? >

short_open_tag = On

extension=mysqli.so

sudo /etc/init.d/apache2 restart



Debian9(LMDE3) и PHP5.6 7.0 7.1 7.2
Telegram - конференция: https://t.me/DebianForumRu

n0m4d

#8
Настройка LAMP — в Debian 10
https://propk.ru/lamp-v-debian-10/
https://propk.ru/phpmyadmin-debian-10/
как оказалось mysql сервер не ставится автоматически и phpmyadmin так же, поэтому прибегнул к данному ресурсу.  Лично проверил, всё работает.
Telegram - конференция: https://t.me/DebianForumRu