Lors du déploiement d'un projet sur un serveur, je voulais placer uniquement le dossier public dans la racine du document.
Supposons que vous ayez un arbre qui ressemble à ceci.
root
├── project
│ ├── etc
│ └── public
│ ├── index.html
│ ├── css
│ └── js
└── public_html
└── project
Ce que je veux faire c'est /root/public_html/project À /root/project/public Lié à
public_html
└── project
├── index.html
├── css
└── js
L'état qui ressemble.
$ cd /root/public_html
$ ln -s /root/project/public project
résultat
$ ls -l
drwx---r-x project
Il n'y a pas de lien.
$ cd project
$ ls -l
lrwxrwxrwx public -> /root/project/public
/root/public_html/project Il existe un lien appelé public sous. Puisqu'il s'agit d'un échec, effacez-le une fois.
$ rm public
Avec / *, tous les fichiers en dessous défi à nouveau.
$ cd /root/public_html
$ ln -s /root/project/public/* project
$ ls -l
lrwxrwxrwx index.html -> /root/project/public/index.html
lrwxrwxrwx css -> /root/project/public/css
lrwxrwxrwx js -> /root/project/public/js
l'a fait.
Avec cette méthode, /root/public_html/project Le lien est collé une fois que le répertoire appelé est effectivement présent. Alors /root/public_html/project J'étais en colère quand j'ai essayé de faire ça sans ça.
Supprimez une fois le répertoire existant.
$ pwd
/root/public_html
$ rm -rf project
$ ln -s /root/project/public project
$ ls -l
lrwxrwxrwx project -> /root/project/public
C'est aussi un lien. Ici, le projet lui-même devient un lien.
Quand je l'ai essayé sur un serveur de location, quand j'ai essayé de "lier le répertoire lui-même", il a été écrasé par un répertoire vide plus tard. Il semble qu'un répertoire avec un nom de domaine (sous-domaine) soit automatiquement créé dans les paramètres du serveur, a-t-il donc été écrasé sans être reconnu comme un répertoire?
Alors cette fois Adopté la méthode de "lier le contenu du répertoire".
Je pense qu'il est utilisé correctement selon le moment et le cas.
Recommended Posts