LINUX.ORG.RU

Настройка Apache

 , ,


0

1

Здравствуйте. Решил для веб разработки поставить на смартбук Ubuntu. Почитал форумы, понял, что без танцев с бубном не обойтись, но решил рискнуть. Как ни странно, при установке проблем не возникло, пришлось только повозиться со звуком. После этого я установил LAMP и сделал следующие настройки:

1. В файле /etc/apache2/apache2.conf исправил

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

и добавил еще для своего сайта аналогично

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/sitename/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Как я понял из статей, это разрешает использовать в указанных директориях файл .htaccess. Перезапустил апач.

2. В файле /etc/php/7.2/apache2/php.ini исправил

short_open_tag = On

error_reporting = E_ALL
display_errors = On

и опять перезапустил апач

3. Проверил работу Apache и php, Все работает

4. Создал директорию /var/www/html/sitename

5. Скопировал в эту директорию полностью свой сайт с хостинга

6. В MySQL создал БД и заполнил ее данными (использовал дамп БД с хостинга)

После этого попробовал увидеть сайт в браузере. В адресной строке ввел

http://localhost/sitename

Получил ошибку 500

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log. Apache/2.4.29 (Ubuntu) Server at localhost Port 80

Выяснил, что виноват файл .htaccess. Он находится в корне сайта. Его содержимое:

AddDefaultCharset utf-8
php_flag magic_quotes_gpc Off
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php
ErrorDocument 404 /page404.html
Если заремарчить все строки, начинающиеся с Rewrite, то этой ошибки не возникает, и я попадаю в index.php. Его содержимое:
<?php
header("Content-Type:text/html;charset=utf-8");
session_start();
// подключение файла конфигурации
require "config.php";
//Подключение необходимых классов
echo get_include_path();
set_include_path(get_include_path()
				.PATH_SEPARATOR.CONTROLLER
				.PATH_SEPARATOR.MODEL
				.PATH_SEPARATOR.SCRIPTS_PHP
				);
echo "<br>";
echo get_include_path();

spl_autoload_register(function ($class_name) {
	try{
   		include_once ($class_name.".php");
   	}
   	catch(ContrException $e) {
			echo $e->getMessage();
	}
});
try{
	$obj = RouteController::get_instance();
	$obj->route();
}
catch(ContrException $e) {
	echo ($e);
}
?>
В браузере получаю: .:/usr/share/php .:/usr/share/php:controller:model:views/Scripts/php Warning: include_once(RouteController.php): failed to open stream: No such file or directory in /var/www/html/sitename/index.php on line 38

Warning: include_once(): Failed opening 'RouteController.php' for inclusion (include_path='.:/usr/share/php:controller:model:views/Scripts/php') in /var/www/html/sitename/index.php on line 38

Fatal error: Uncaught Error: Class 'RouteController' not found in /var/www/html/sitename/index.php:57 Stack trace: #0 {main} thrown in /var/www/html/sitename/index.php on line 57 Файл RouteController.php есть в директории /controller, В нем объявлен класс RouteController, в классе есть конструктор. Но в конструктор я не попадаю, т.к. класс не найден. Если я запускаю сайт под Windows/OpenServer, то все работает нормально На хостинге, где Linux/Apache тоже все работает нормально У меня Apache/php/MySQL работают нормально, а сайт работать не хочет. Я делаю вывод, что у меня что-то не так с настройками.

Подскажите, какие еще нужны настройки Apache и php, чтобы нормально обрабатывался .htaccess и чтобы нормально находились файлы в исходниках сайта?


Ответ на: комментарий от anonymous

Включил, ,htaccess заработал Но вот дальше все без изменений, контроллер не находится

gpi65
() автор топика
Ответ на: комментарий от anonymous

Это Prestigio 116c. Если пользоваться предустановленной десятой виндой, то работать невозможно, и процессор слабый, и памяти мало. А вот убунта вполне нормально работает.

gpi65
() автор топика
Ответ на: комментарий от Anoxemian

сегодня попробую. Думаю, что вы правы, надо апач сделать владельцем и дать ему права

gpi65
() автор топика
Ответ на: комментарий от Anoxemian

Да, как я и предполагал, Вы правы. Все дело было во владельце и в правах. Спасибо

gpi65
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.