Projet

Général

Profil

Competences techniques apache et drupal » Historique » Version 6

Julien Enselme, 15/05/2013 23:42
Infos doublon

1 6 Julien Enselme
{{warning(Une partie de ce texte fait doublon avec https://forge.centrale-marseille.fr/projects/clubdrupal/wiki/De_Drupal6_vers_Drupal7#Un-environnement-de-tests-en-local Faire attention de ne pas laisser des explications en double qui risque de ne pas être mise à jours)}}
2 6 Julien Enselme
3 1 Florent Torregrosa
{{toc}}
4 1 Florent Torregrosa
5 1 Florent Torregrosa
h1. Competences techniques apache et drupal
6 1 Florent Torregrosa
7 1 Florent Torregrosa
h2. Savoir installer un serveur apache, phpmyadmin
8 1 Florent Torregrosa
9 1 Florent Torregrosa
* augmenter sa mémoire dédiée
10 1 Florent Torregrosa
* augmenter la taille maximale des fichiers pouvant être importés dans phpmyadmin
11 1 Florent Torregrosa
* post_max_size et upload_max_filesize dans /etc/php5/apache2/php.ini et /etc/php5/cli/php.ini puis restart apache
12 1 Florent Torregrosa
13 1 Florent Torregrosa
h2. Savoir ajouter/activer des modules pour le serveur apache (notamment le module pour les url-simplifiées)
14 1 Florent Torregrosa
15 1 Florent Torregrosa
* sudo a2enmod mod_rewrite
16 1 Florent Torregrosa
* sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
17 1 Florent Torregrosa
18 1 Florent Torregrosa
h2. Savoir installer drush
19 1 Florent Torregrosa
20 1 Florent Torregrosa
* savoir où est installé drush : drush config
21 1 Florent Torregrosa
22 3 Florent Torregrosa
h2. Pouvoir utiliser un nom de domaine en local
23 1 Florent Torregrosa
24 3 Florent Torregrosa
Quand je vais sur assos.centrale-marseille.fr, c’est mon site local que je vois et non pas celui de centrale.
25 3 Florent Torregrosa
26 3 Florent Torregrosa
Constater qu’en allant sur assos.centrale-marseille.fr on tombe sur la page par defaut de notre apache (la page sur laquelle on tombe dépend de si oui ou non elle a un vhost qui la concerne).
27 3 Florent Torregrosa
28 2 Florent Torregrosa
* Pour les distributions basées sur Debian
29 1 Florent Torregrosa
* Pour Mageia 3
30 1 Florent Torregrosa
* Pour Fedora
31 1 Florent Torregrosa
32 3 Florent Torregrosa
h2. Pouvoir créer des vhost à la pelle
33 1 Florent Torregrosa
34 3 Florent Torregrosa
Exemple : créer le domaine titi.local
35 1 Florent Torregrosa
36 2 Florent Torregrosa
* Pour les distributions basées sur Debian
37 2 Florent Torregrosa
* Pour Mageia 3
38 2 Florent Torregrosa
* Pour Fedora
39 1 Florent Torregrosa
40 1 Florent Torregrosa
h2. Pouvoir reproduire en local un site en particulier
41 1 Florent Torregrosa
42 1 Florent Torregrosa
* pouvoir télécharger en local juste le minimum de fichiers
43 1 Florent Torregrosa
* le minimum c’est tout le htmltest sauf le dossier sites
44 1 Florent Torregrosa
* dans sites/ il faut ne prendre que le dossier default et le dossier du site qui nous concerne.
45 1 Florent Torregrosa
* pouvoir se démerder (script ou suite de ligne de commande ou …) pour pouvoir faire ça efficacement (une suite de commande scp n’est pas une mauvaise idée)
46 1 Florent Torregrosa
* rsync -lr --exclude nom_fichier_ou_dossier_a_exclure assos@sas1.centrale-marseille.fr:chemin_vers_dossier/* .
47 1 Florent Torregrosa
* sur sa machine se faire un dossier d6 et un dossier d7
48 1 Florent Torregrosa
49 1 Florent Torregrosa
* exemple dans d6 :
50 1 Florent Torregrosa
<pre>
51 1 Florent Torregrosa
cd d6
52 1 Florent Torregrosa
rsync -lr --exclude sites assos@sas1.centrale-marseille.fr:html/* .
53 2 Florent Torregrosa
mkdir sites
54 1 Florent Torregrosa
cd sites
55 1 Florent Torregrosa
rsync -lr assos@sas1.centrale-marseille.fr:html/sites/default .
56 2 Florent Torregrosa
rsync -lr assos@sas1.centrale-marseille.fr:html/sites/assos.centrale-marseille.fr.annales . (étape longue)
57 1 Florent Torregrosa
</pre>
58 1 Florent Torregrosa
59 1 Florent Torregrosa
h2. Pouvoir télécharger la base de donnée d’un seul site en particulier
60 1 Florent Torregrosa
61 1 Florent Torregrosa
* savoir faire ça avec phpmyadmin, dans phpmyadmin :
62 2 Florent Torregrosa
> * exporter
63 1 Florent Torregrosa
> * options personnalisées
64 1 Florent Torregrosa
> * choisir que les tables qui vous intéressent
65 1 Florent Torregrosa
> * laisser les autres options
66 1 Florent Torregrosa
> * enregistrer
67 1 Florent Torregrosa
> * ça enregistre dans votre dossier de téléchargements sur votre machine
68 1 Florent Torregrosa
69 2 Florent Torregrosa
* savoir le faire avec drush car parfois le fichier téléchargé par phpmyadmin est trop gros
70 1 Florent Torregrosa
71 1 Florent Torregrosa
> * sur le sas :
72 1 Florent Torregrosa
> > <pre>dump_site annales (pour une base de données isolées, se placer dans le dossier du site puis drush sql-dump > nom_du_fichier.sql)
73 4 Florent Torregrosa
cd Desktop/dump_individuels</pre>
74 1 Florent Torregrosa
75 1 Florent Torregrosa
> * sur sa machine :
76 1 Florent Torregrosa
> > </pre>@scp assos@sas1.centrale-marseille.fr:Desktop/dump_individuels/annales....</pre>
77 1 Florent Torregrosa
78 1 Florent Torregrosa
h2. Monter un site en local
79 1 Florent Torregrosa
80 1 Florent Torregrosa
* monter un seul vhost pour assos.centrale-marseille.fr (il sera valable pour tous les sous sites, il ne sera jamais édité)
81 1 Florent Torregrosa
* télécharger les fichiers et la base de donnée du site en question
82 1 Florent Torregrosa
* injecter la dbb en local (utiliser le phpmyadmin en local ou sudo mysql -u root -pmotdepasse nomdelabase < fichier.sql)
83 1 Florent Torregrosa
* modifier le settings.php du site en question pour donner les informations de connection mysql)
84 1 Florent Torregrosa
85 1 Florent Torregrosa
h2. Installer le script drush de mise à jour http://drupal.org/project/drush_sup
86 1 Florent Torregrosa
87 1 Florent Torregrosa
* suivre la procédure d’installation
88 1 Florent Torregrosa
* critère de validation : la commande suivante marche : drush sup
89 1 Florent Torregrosa
90 1 Florent Torregrosa
h2. Exécuter correctement le script de mise à jour
91 1 Florent Torregrosa
92 1 Florent Torregrosa
* lire la doc de drush sup
93 1 Florent Torregrosa
* exécuter drush sup avec les bons arguments
94 1 Florent Torregrosa
95 3 Florent Torregrosa
h1. Annexe : Nom de domaine
96 1 Florent Torregrosa
97 5 Julien Enselme
Normalement, toutes les unix reposent sur le même principe. Ajouter l’entrée suivante dans /etc/hosts : @127.0.0.1  assos.centrale-marseille.fr@
98 1 Florent Torregrosa
99 3 Florent Torregrosa
h1. Annexe : Vhosts
100 1 Florent Torregrosa
101 1 Florent Torregrosa
h2. Pour les distributions basées sous Debian
102 1 Florent Torregrosa
103 3 Florent Torregrosa
* Dans /etc/apache2/sites-available/ créer un fichier titi dont le contenu est :
104 3 Florent Torregrosa
<pre>
105 3 Florent Torregrosa
<VirtualHost *:80>
106 3 Florent Torregrosa
    ServerAdmin webmaster@localhost
107 3 Florent Torregrosa
    ServerName titi.local
108 3 Florent Torregrosa
    ServerAlias titi.local
109 2 Florent Torregrosa
110 3 Florent Torregrosa
    DocumentRoot /chemin/dossier_site
111 1 Florent Torregrosa
112 3 Florent Torregrosa
    <Directory /chemin/dossier_site/>
113 3 Florent Torregrosa
        Options Indexes FollowSymLinks MultiViews
114 3 Florent Torregrosa
        AllowOverride All
115 3 Florent Torregrosa
        Order allow,deny
116 3 Florent Torregrosa
        allow from all
117 3 Florent Torregrosa
    </Directory>
118 3 Florent Torregrosa
119 3 Florent Torregrosa
    ErrorLog ${APACHE_LOG_DIR}/titi.error.log
120 3 Florent Torregrosa
121 3 Florent Torregrosa
    # Possible values include: debug, info, notice, warn, error, crit,
122 3 Florent Torregrosa
    # alert, emerg.
123 3 Florent Torregrosa
    LogLevel warn
124 3 Florent Torregrosa
125 3 Florent Torregrosa
    CustomLog ${APACHE_LOG_DIR}/titi.access.log combined
126 3 Florent Torregrosa
127 3 Florent Torregrosa
</VirtualHost>
128 3 Florent Torregrosa
</pre>
129 3 Florent Torregrosa
* créer le fichier test.html dans /chemin/dossier_site et mettre dedans @<h1>TITI</h1>@
130 3 Florent Torregrosa
* ajouter un lien symbolique dans /etc/apache2/sites-enabled qui pointe sur le fichier titi qui est dans /etc/apache2/sites-available/ :
131 3 Florent Torregrosa
> * Manuellement :
132 4 Florent Torregrosa
> <pre>
133 3 Florent Torregrosa
cd /etc/apache2/sites-enabled/
134 3 Florent Torregrosa
ln -s ../sites-available/titi .
135 3 Florent Torregrosa
</pre>
136 3 Florent Torregrosa
> * Avec la commande apache :
137 4 Florent Torregrosa
> <pre>
138 3 Florent Torregrosa
sudo service a2ensite titi
139 3 Florent Torregrosa
</pre>
140 3 Florent Torregrosa
* ajouter l’entrée titi.local dans le fichier /etc/hosts :
141 1 Florent Torregrosa
<pre>
142 1 Florent Torregrosa
@127.0.0.1        titi.local@
143 3 Florent Torregrosa
</pre>
144 4 Florent Torregrosa
* restart apache
145 3 Florent Torregrosa
<pre>
146 4 Florent Torregrosa
sudo service apache2 restart
147 1 Florent Torregrosa
</pre>
148 1 Florent Torregrosa
* consulter  titi.local/test.html
149 1 Florent Torregrosa
150 1 Florent Torregrosa
h2. Pour Mageia 3
151 4 Florent Torregrosa
152 4 Florent Torregrosa
{{warning(la partie pour mageia permet pour l'instant d'atteindre le site via localhost/nom_du_site, pas encore bien connecté avec le fichier Hosts)}}
153 4 Florent Torregrosa
154 4 Florent Torregrosa
* Dans /etc/httpd/conf/sites.d/ créer un fichier nom_du_fichier.conf dont le contenu est :
155 4 Florent Torregrosa
<pre>
156 4 Florent Torregrosa
# Drupal configuration
157 4 Florent Torregrosa
Alias /nom_du_site /chemin/dossier_site
158 4 Florent Torregrosa
159 4 Florent Torregrosa
<Directory /chemin/dossier_site/>
160 4 Florent Torregrosa
   Require local granted
161 4 Florent Torregrosa
   Options -Indexes +FollowSymlinks +Multiviews
162 4 Florent Torregrosa
   AllowOverride None
163 4 Florent Torregrosa
164 4 Florent Torregrosa
    # Protect files and directories from prying eyes.
165 4 Florent Torregrosa
    <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$">
166 4 Florent Torregrosa
      Order allow,deny
167 4 Florent Torregrosa
    </FilesMatch>
168 4 Florent Torregrosa
169 4 Florent Torregrosa
    # Don't show directory listings for URLs which map to a directory.
170 4 Florent Torregrosa
    Options -Indexes
171 4 Florent Torregrosa
172 4 Florent Torregrosa
    # Follow symbolic links in this directory.
173 4 Florent Torregrosa
    Options +FollowSymLinks
174 4 Florent Torregrosa
175 4 Florent Torregrosa
    # Make Drupal handle any 404 errors.
176 4 Florent Torregrosa
    ErrorDocument 404 /index.php
177 4 Florent Torregrosa
178 4 Florent Torregrosa
    # Set the default handler.
179 4 Florent Torregrosa
    DirectoryIndex index.php index.html index.htm
180 4 Florent Torregrosa
181 4 Florent Torregrosa
    # Override PHP settings that cannot be changed at runtime. See
182 4 Florent Torregrosa
    # sites/default/default.settings.php and drupal_environment_initialize() in
183 4 Florent Torregrosa
    # includes/bootstrap.inc for settings that can be changed at runtime.
184 4 Florent Torregrosa
185 4 Florent Torregrosa
    # PHP 5, Apache 1 and 2.
186 4 Florent Torregrosa
    <IfModule mod_php5.c>
187 4 Florent Torregrosa
        php_flag magic_quotes_gpc                 off
188 4 Florent Torregrosa
        php_flag magic_quotes_sybase              off
189 4 Florent Torregrosa
        php_flag register_globals                 off
190 4 Florent Torregrosa
        php_flag session.auto_start               off
191 4 Florent Torregrosa
        php_value mbstring.http_input             pass
192 4 Florent Torregrosa
        php_value mbstring.http_output            pass
193 4 Florent Torregrosa
        php_flag mbstring.encoding_translation    off
194 4 Florent Torregrosa
    </IfModule>
195 4 Florent Torregrosa
196 4 Florent Torregrosa
    # Requires mod_expires to be enabled.
197 4 Florent Torregrosa
    <IfModule mod_expires.c>
198 4 Florent Torregrosa
        # Enable expirations.
199 4 Florent Torregrosa
        ExpiresActive On
200 4 Florent Torregrosa
201 4 Florent Torregrosa
        # Cache all files for 2 weeks after access (A).
202 4 Florent Torregrosa
        ExpiresDefault A1209600
203 4 Florent Torregrosa
204 4 Florent Torregrosa
        <FilesMatch \.php$>
205 4 Florent Torregrosa
            # Do not allow PHP scripts to be cached unless they explicitly send
206 4 Florent Torregrosa
            # cache headers themselves. Otherwise all scripts would have to 
207 4 Florent Torregrosa
            # overwrite the headers set by mod_expires if they want another 
208 4 Florent Torregrosa
            # caching behavior. This may fail if an error occurs early in the
209 4 Florent Torregrosa
            # bootstrap process, and it may cause problems if a non-Drupal PHP
210 4 Florent Torregrosa
            # file is installed in a subdirectory.
211 4 Florent Torregrosa
            ExpiresActive Off
212 4 Florent Torregrosa
        </FilesMatch>
213 4 Florent Torregrosa
    </IfModule>
214 4 Florent Torregrosa
215 4 Florent Torregrosa
    # Various rewrite rules.
216 4 Florent Torregrosa
    <IfModule mod_rewrite.c>
217 4 Florent Torregrosa
        RewriteEngine on
218 4 Florent Torregrosa
219 4 Florent Torregrosa
        # Block access to "hidden" directories whose names begin with a period.
220 4 Florent Torregrosa
        # This includes directories used by version control systems such as
221 4 Florent Torregrosa
        # Subversion or Git to store control files. Files whose names begin with
222 4 Florent Torregrosa
        # a period, as well as the control files used by CVS, are protected by 
223 4 Florent Torregrosa
        # the FilesMatch directive above.
224 4 Florent Torregrosa
        #
225 4 Florent Torregrosa
        # NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite,
226 4 Florent Torregrosa
        # it is not possible to block access to entire directories from 
227 4 Florent Torregrosa
        # .htaccess, because <DirectoryMatch> is not allowed here.
228 4 Florent Torregrosa
        #
229 4 Florent Torregrosa
        # If you do not have mod_rewrite installed, you should remove these
230 4 Florent Torregrosa
        # directories from your webroot or otherwise protect them from being
231 4 Florent Torregrosa
        # downloaded.
232 4 Florent Torregrosa
        RewriteRule "(^|/)\." - [F]
233 4 Florent Torregrosa
234 4 Florent Torregrosa
        # If your site can be accessed both with and without the 'www.' prefix,
235 4 Florent Torregrosa
        # you can use one of the following settings to redirect users to your
236 4 Florent Torregrosa
        # preferred URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY
237 4 Florent Torregrosa
        # one option: 
238 4 Florent Torregrosa
        # To redirect all users to access the site WITH the 'www.' prefix,
239 4 Florent Torregrosa
        # (http://example.com/... will be redirected to http://www.example.com/...)
240 4 Florent Torregrosa
        # uncomment the following:
241 4 Florent Torregrosa
        # RewriteCond %{HTTP_HOST} !^www\. [NC]
242 4 Florent Torregrosa
        # RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
243 4 Florent Torregrosa
        #
244 4 Florent Torregrosa
        # To redirect all users to access the site WITHOUT the 'www.' prefix,
245 4 Florent Torregrosa
        # (http://www.example.com/... will be redirected to http://example.com/...)
246 4 Florent Torregrosa
        # uncomment the following:
247 4 Florent Torregrosa
        # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
248 4 Florent Torregrosa
        # RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
249 4 Florent Torregrosa
250 4 Florent Torregrosa
        # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
251 4 Florent Torregrosa
        # VirtualDocumentRoot and the rewrite rules are not working properly.
252 4 Florent Torregrosa
        # For example if your site is at http://example.com/drupal uncomment and
253 4 Florent Torregrosa
        # modify the following line:
254 4 Florent Torregrosa
        RewriteBase /nom_du_site
255 4 Florent Torregrosa
        #
256 4 Florent Torregrosa
        # If your site is running in a VirtualDocumentRoot at http://example.com/,
257 4 Florent Torregrosa
        # uncomment the following line:
258 4 Florent Torregrosa
        # RewriteBase /
259 4 Florent Torregrosa
260 4 Florent Torregrosa
        # Pass all requests not referring directly to files in the filesystem to
261 4 Florent Torregrosa
        # index.php. Clean URLs are handled in drupal_environment_initialize().
262 4 Florent Torregrosa
        RewriteCond %{REQUEST_FILENAME} !-f
263 4 Florent Torregrosa
        RewriteCond %{REQUEST_FILENAME} !-d
264 4 Florent Torregrosa
        RewriteCond %{REQUEST_URI} !=/favicon.ico
265 4 Florent Torregrosa
        RewriteRule ^ index.php [L]
266 4 Florent Torregrosa
267 4 Florent Torregrosa
        # Rules to correctly serve gzip compressed CSS and JS files.
268 4 Florent Torregrosa
        # Requires both mod_rewrite and mod_headers to be enabled.
269 4 Florent Torregrosa
        <IfModule mod_headers.c>
270 4 Florent Torregrosa
        # Serve gzip compressed CSS files if they exist and the client accepts gzip.
271 4 Florent Torregrosa
        RewriteCond %{HTTP:Accept-encoding} gzip
272 4 Florent Torregrosa
        RewriteCond %{REQUEST_FILENAME}\.gz -s
273 4 Florent Torregrosa
        RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
274 4 Florent Torregrosa
275 4 Florent Torregrosa
        # Serve gzip compressed JS files if they exist and the client accepts gzip.
276 4 Florent Torregrosa
        RewriteCond %{HTTP:Accept-encoding} gzip
277 4 Florent Torregrosa
        RewriteCond %{REQUEST_FILENAME}\.gz -s
278 4 Florent Torregrosa
        RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
279 4 Florent Torregrosa
280 4 Florent Torregrosa
        # Serve correct content types, and prevent mod_deflate double gzip.
281 4 Florent Torregrosa
        RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
282 4 Florent Torregrosa
        RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
283 4 Florent Torregrosa
284 4 Florent Torregrosa
        <FilesMatch "(\.js\.gz|\.css\.gz)$">
285 4 Florent Torregrosa
            # Serve correct encoding type.
286 4 Florent Torregrosa
            Header set Content-Encoding gzip
287 4 Florent Torregrosa
            # Force proxies to cache gzipped & non-gzipped css/js files 
288 4 Florent Torregrosa
            # separately.
289 4 Florent Torregrosa
            Header append Vary Accept-Encoding
290 4 Florent Torregrosa
        </FilesMatch>
291 4 Florent Torregrosa
        </IfModule>
292 4 Florent Torregrosa
    </IfModule>
293 4 Florent Torregrosa
294 4 Florent Torregrosa
</Directory>
295 4 Florent Torregrosa
</pre>
296 4 Florent Torregrosa
{{tip(Pour ce fichier de configuration, se baser sur celui fournit par Mageia lors de l'installation d'un Drupal depuis la logithèque de Mageia.)}}
297 4 Florent Torregrosa
298 4 Florent Torregrosa
* créer un dossier (avec un Drupal dedans) appelé dossier_site dans /chemin/
299 4 Florent Torregrosa
* restart apache
300 4 Florent Torregrosa
<pre>
301 4 Florent Torregrosa
sudo service httpd stop
302 4 Florent Torregrosa
sudo service httpd start
303 4 Florent Torregrosa
</pre>
304 4 Florent Torregrosa
305 4 Florent Torregrosa
* consulter  localhost/nom_du_site
306 4 Florent Torregrosa
307 2 Florent Torregrosa
308 2 Florent Torregrosa
h2. Pour Fedora