Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Serwery WWW _ jak skonfigurować apache?

Napisany przez: szczrzcz 10.06.2017, 14:16:10

Mam projekt z plikiem var/www/html/projek1t/index.php i projekt1/.htaccess, który wygl±da tak:

  1. RewriteEngine On
  2.  
  3. RewriteCond %{REQUEST_FILENAME} -s [OR]
  4. RewriteCond %{REQUEST_FILENAME} -l [OR]
  5. RewriteCond %{REQUEST_FILENAME} -d
  6. RewriteRule ^.*$ - [NC,L]
  7. RewriteRule ^.*$ index.php [NC,L]
  8.  
  9. <IfModule pagespeed_module>
  10. ModPagespeed off
  11. </IfModule>


projekt1/public/.htaccess:
Kod
Options -Indexes
RewriteEngine off


projekt1/upload/.htaccess:
Kod
Options -Indexes
RewriteEngine off


projekt1/system/.htaccess
Kod
deny from all


projekt1/application/.htaccess (tu s± kontrolery, encje)
Kod
deny from all


Każda strona projektu zgłasza 404. Np podstrona http://localhost/projekt1/producers/wear.html zgłasza error: The requested URL /projekt1/producers/wear.html was not found on this server.

Co mam wpisać w google?

Napisany przez: Tomplus 10.06.2017, 14:51:12

W ustawieniach httpd.conf masz co¶ takiego?

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



Napisany przez: szczrzcz 10.06.2017, 15:08:01

nie mam /apache/httpd.conf
mam apache2.conf a w nim:

Kod
Mutex file:${APACHE_LOCK_DIR} default
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride All
    Require all granted
</Directory>

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

AccessFileName .htaccess

<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>
IncludeOptional conf-enabled/*.conf

IncludeOptional sites-enabled/*.conf

Napisany przez: Pyton_000 10.06.2017, 16:04:37

zmień None na All

Napisany przez: szczrzcz 10.06.2017, 16:10:22

gdy dam All to mam:
- 500 Internal Server Error

Napisany przez: Pyton_000 10.06.2017, 16:17:05

No to teraz wywal wszystko z .htaccess i dodawaj pojedynczo i dojdziesz co Ci nie działa. Zerknij też w logi apache

Napisany przez: szczrzcz 10.06.2017, 17:37:08

chyba nie obejdzie się bez gruntownej lektury Apache, mod_rewite. Ale przyjemniej będzie mi się czytało je¶li jednak na szybko uda mi się wystartować ten projekt lokalnie.

log/apache2/access.log pokazuje mi takie co¶:

Kod
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /projekt1/shop/clothing.html HTTP/1.1" 404 17601 "http://localhost/projekt1/" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/font-awesome.min.css HTTP/1.1" 404 521 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/bootstrap.min.css HTTP/1.1" 404 518 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/materialdesignicons.min.css HTTP/1.1" 404 528 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/ilightbox.css HTTP/1.1" 404 513 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/flag-icon.min.css HTTP/1.1" 404 517 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/owl.carousel.css HTTP/1.1" 404 517 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/template/default/extras.css HTTP/1.1" 404 528 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/template/default/style.css HTTP/1.1" 404 527 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/template/default/colors.css HTTP/1.1" 404 527 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/css/base/frontend.css HTTP/1.1" 404 517 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/jquery-2.1.4.min.js HTTP/1.1" 404 518 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/bootstrap.min.js HTTP/1.1" 404 515 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/jquery.requestAnimationFrame.js HTTP/1.1" 404 530 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/jquery.mousewheel.js HTTP/1.1" 404 519 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/ilightbox.packed.js HTTP/1.1" 404 518 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/jquery.cycle2.min.js HTTP/1.1" 404 519 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/js.cookie.js HTTP/1.1" 404 511 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/template/default/main.js HTTP/1.1" 404 523 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /public/js/base/frontend.js HTTP/1.1" 404 515 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"
127.0.0.1 - - [10/Jun/2017:18:27:18 +0200] "GET /files/graphics/logo.png HTTP/1.1" 404 512 "http://localhost/projekt1/shop/clothing.html" "(co¶tam)(co¶tam)"


w projekt1/public/.htacces jest
Kod
Options -Indexes
RewriteEngine off

Napisany przez: viking 10.06.2017, 18:17:13

Twoja reguła oznacza że każdy nie istniej±cy plik przekieruj na index.php a resztę zostaw. Tak ma być?

Napisany przez: szczrzcz 10.06.2017, 18:24:40

Nie mój projekt, zawarto¶ci .htaccess s± jakie s±.
Wiem tyle, że NIE ładuje mi plików styli/js z folderu public - z reszta pokazuje to log apache, wszedzie 404.
I że każda kliknięta podstrona serwisu jest taka sama - z komunikatem "Uups... Page not found!", ale tu już wchodzimy szczególy.

Jestem ¶wieżym użytkownikiem linuxa więc powody mog± być banalne. Ale dla ¶więtego spokoju dałem chmod 777 rekurencyjnie dla całego var/www/...

Jakie mam tu wkleić pliki konfiguracyjne apache?

Napisany przez: Tomplus 10.06.2017, 20:19:20

Nie ładuje Ci styli, bo nie masz do nich ¶cieżki dostępu w pliku HTML
Po prostu do każdego SRC musisz dodać bezwzględn± ¶cieżkę: domena/page/subpage/etc/
Jeżeli nie chcesz tego robić, zawsze możesz ustawić sobie lokaln± domenę na systemie np.:
http://projekt1.szczrzcz/index.php

Ale musiałby¶ skonfigurować sobie dalej Apacha.

Napisany przez: szczrzcz 11.06.2017, 08:09:13

jest:

Kod
<link rel="stylesheet" href="{{ constant("TPL_URL") }}/css/bootstrap.min.css">


jest:
Kod
define('TPL_URL', '/public');


serio jak zrobię virtual hosta na projekt1 to mi to zadziała? To jest przyczyna?
(w pracy ten projekt jest widoczny http://projekt1/) u mnie problemy s± z http://localhost/projekt1/ )

Napisany przez: viking 11.06.2017, 08:13:25

Jak sobie klikniesz w narzędziach developerskich na konkretny link z błędem 404 dostaniesz pełn± ¶cieżkę gdzie zasób jest szukany. U ciebie w folderze głównym hosta, w katalogu /public.

Napisany przez: szczrzcz 11.06.2017, 09:09:52

Czyli on mi szuka np /css/bootstrap.min.css w
http://localhost/public/css/bootstrap.min.css
zamiast w
http://localhost/project1/public/css/bootstrap.min.css

Czyli co za to odpowiada? fragment w apache2.conf:

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

?

Czy mam przenie¶ć, jak pisał Tomplus, projekt do var/www/ zamiast var/www/html i zdefiniować virtual hosta na http://projekt1/ questionmark.gif

Napisany przez: Pyton_000 11.06.2017, 09:40:28

Dodaj na pocz±tku po rewrite on w głównym katalogu projektu co¶ takiego:

Kod
RewriteBase /projekt1/


Z rewrite nie jestem kolegami więc może nie zadziałać wink.gif

Napisany przez: szczrzcz 11.06.2017, 09:45:58

dodałem do projekt1/.htaccess

Kod
RewriteEngine On
RewriteBase /projekt1/
(...)


i dalej to samo

Napisany przez: Tomplus 11.06.2017, 10:11:49

Możesz dodać do HTML jeszcze TAG <base>, zwykle też rozwi±zuje wszystkie problemy, szczególnie gdy zabawa jest na localhost.


Kod
<base href="http://localhost/project1/public/">

Napisany przez: szczrzcz 11.06.2017, 10:27:08

dodałem w <head>
<base href="http://localhost/projekt1/public/">
i to samo


w pracy ten sam projekt starszy pracownik konfigurował na ¶wieżym Ubuntu bez mieszania w plikach projektu, też było to czasochłonne, ale mieszał w plikach Apache. Ustawił virtual host by projekt był widoczny w http:/projekt1/ a pliki projektu wrzucił do var/www zamiast var/www/html. Mieszał też cos w sites-available czy sites-enabled. ale podkre¶lam że nie mieszał w plikach projektu



W zasadzie ja czekam aż kto¶ napisze że muszę skonfigurowac projekt by był widoczny w http:/projekt1/ i wtedy wszystko prawdopodobnie będzie w porz±dku. Bez tego nie chcę mi się zacz±c w tym grzebać (bo nigdy nie bawiłem się z virtual hostami, mod_rewrite itd).

Napisany przez: Tomplus 11.06.2017, 12:07:30

Ja wrócę do tego co napisałe¶ wcze¶niej czyli do zmiennej {{ constant("TPL_URL") }}

Nie możesz tej stałej ustawić jako ¶cieżka do strony? http://projekt/public/ ? Zamiast tylko public/?

Napisany przez: szczrzcz 11.06.2017, 13:33:50

w #11 po¶cie trochę skłamałem

w var/www/html/project/application/config jest:

Kod
define('CMS_DIR', dirname(dirname(dirname(__FILE__))));
define('CO_DIR', CMS_DIR . '/application/controllers');
define('MO_DIR', CMS_DIR . '/application/models');
define('CL_DIR', CMS_DIR . '/application/classes');
define('LI_DIR', CMS_DIR . '/application/libraries');
define('LO_DIR', CMS_DIR . '/application/logs');
define('C_DIR', CMS_DIR . '/application/config');
define('S_DIR', CMS_DIR . '/system');
define('TPL_URL', CMS_URL . '/public');
define('V_DIR', CMS_DIR . '/application/views');
define('E_DIR', CMS_DIR . '/application/entity');


no ale na jedno wychodzi. TPL_URL == /public


zrobiłem:
Kod
define('CMS_DIR', 'http://projekt');

a nawet:
Kod
define('CMS_DIR', 'http://localhost/projekt');

i mam:
Kod
Warning: require(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in /var/www/html/projekt/index.php on line 39

line 39: require(S_DIR . '/core/Initialize.php');


wrzuciłem do var/www/.htaccess:
Kod
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ /project1/$1 [R=301,NC,L]

(bo na stack mi polecono) to strony zaczęły używac styli i js i Apache2/access.log przy stronie http://localhost/projekt/recommended.html pokazuje:
Kod
127.0.0.1 "GET /projekt/recommended.html HTTP/1.1" 404 17607 "http://localhost/projekt/index.php" projekt
127.0.0.1 "GET /public/css/template/default/extras.css HTTP/1.1" 301 645 "http://localhost/projekt/recommended.html" projekt
127.0.0.1 "GET /public/css/template/default/style.css HTTP/1.1" 301 643 "http://localhost/projekt/recommended.html" projekt
127.0.0.1 "GET /public/css/base/frontend.css HTTP/1.1" 301 625 "http://localhost/projekt/recommended.html" projekt
127.0.0.1 "GET /public/js/bootstrap.min.js HTTP/1.1" 301 621 "http://localhost/projekt/recommended.html" projekt
127.0.0.1 "GET /public/css/template/default/colors.css HTTP/1.1" 301 645 "http://localhost/projekt/recommended.html" projekt
127.0.0.1 "GET /public/js/jquery-2.1.4.min.js HTTP/1.1" 301 627 "http://localhost/projekt/recommended.html" projekt
127.0.0.1 "GET /projekt/public/css/bootstrap.min.css HTTP/1.1" 200 20222 "http://localhost/projekt/recommended.html" projekt
127.0.0.1 "GET /projekt/public/css/flag-icon.min.css HTTP/1.1" 200 3113 "http://localhost/projekt/recommended.html" projekt

czyli dla styli 200 lub 301, ale dla ż±danej strony /projekt/recommended.html 404 i tak jest z każd± podstron±, 404 i "Uups... Page not found!" ale style i js załadowane.

Napisany przez: Pyton_000 11.06.2017, 14:40:48

Zrób sobie nowego vhosta z domen± np. project1.dev wskazuj±c± na katalog public (bo tam chyba jest index.php) i dodaj domenę do hosts

127.0.0.1 project1.dev

Przywróć oryginalny htaccess i problemy znik±.

Napisany przez: szczrzcz 11.06.2017, 14:53:47

Cytat(Pyton_000 @ 11.06.2017, 15:40:48 ) *
Zrób sobie nowego vhosta z domen± np. project1.dev wskazuj±c± na katalog public (bo tam chyba jest index.php) i dodaj domenę do hosts

127.0.0.1 project1.dev

Przywróć oryginalny htaccess i problemy znik±.


i tak zrobię (... ale już nie dzi¶. zmarnowałem na to dzi¶ 8 godzin, łikend się kończy więc i tak już nic z tym projektem nie zd±żę dzi¶ porobić, jutro sobie z pracy przyniosę pliki konfiguracji apacza)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)