/ var / www 디렉토리를 집에 심볼릭 링크해야합니까? 좋은지 잘 모르겠습니다. 더 나은

방금 LAMP 설정으로 Ubuntu Server 10.04를 설치했습니다. 웹 사이트를 호스팅하고 싶지만 서버에서 파일을 가져 오거나 편집하는 가장 좋은 방법은 확실하지 않습니다. 인터넷 검색은 많은 옵션을 제공하지만 어느 것이 가장 좋은지 잘 모르겠습니다.

더 나은 옵션이 없다면 다른 PC (Windows 또는 Linux)에서 페이지를 만들고 SFTP를 사용하여 변경 사항을 서버와 동기화하고 싶습니다.하지만 ~ /의 심볼릭 폴더 또는 권한을 변경 하여이 작업을 수행하고 싶습니다 / var / www / 폴더에?



답변

모든 설정이 다릅니다. 나에게는 각각 웹 사이트를 호스팅하는 서버에 많은 사용자가 있으므로 시스템에서 둘 이상의 사용자를 만들 필요는 없습니다. 그러나이 서버에서 여러 웹 사이트를 관리하는 경우이 설정을 사용하면 표준 LAMP 설정보다 쉽게 ​​각 도메인을 관리, 구성 및 디버깅 할 수 있습니다. 이를 위해 Apache의 여러 장치를 사용하여 권한 오류를 피할 수 있습니다.

첫째, 이것은 내가 사용하는 문서 구조입니다.

/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs

각 사용자는 도메인 폴더가있는 자체 계정을 가지고 있습니다 (추가 한 폴더 /etc/skel는 매번 생성됩니다. 각 도메인에는 폴더가있는 domains폴더에 자체 폴더가 있습니다 html(이 이유는 주로 도메인 외부에 웹 파일을 가질 수 있음) 적절한 경우이 구조를 자유롭게 수정하십시오.이 게시물 전체에서 이러한 변경 사항을 수행해야합니다.

둘째, PHP 사이트를 많이 호스팅하므로 구성에 suPHP를 사용합니다. 기본적으로 표준 아카이브 패키지에는 적절한 컴파일 플래그가 활성화되어 있지 않으므로 suPHP의 보안 수준이 떨어집니다. 서버에서 사용하는 자체 suPHP 패키지, 아래 설치 지침을 만들었습니다. suPHP를 사용하면 실행할 사용자 PHP 스크립트를 정의 할 수 있습니다 (각 사이트의 사용자 정의 php.ini 등 포함). 또한 suExec for Apache를 활성화하여 www-data 사용자 (내가 멸시하는 사용자)에 대한 소유권이 없어도됩니다.

먼저 Apache 및 기타 모든 서비스가 서버에 설치되어 있는지 확인하십시오. 그들이 적어도 작동하는지 확인하십시오. 그런 다음 suphp-common 및 필수 libapache2-mod-suphp 모듈을 설치하는 것이 좋습니다 (자세한 정보 : PPA 란 무엇이며 어떻게 사용합니까? ). 그런 다음 설치 후 suPHP 및 suexec를 사용하여 활성화하십시오.a2enmod

sudo a2enmod suphp
sudo a2enmod suexec
sudo a2dismod php5

sudo /etc/init.d/apache restart

다음으로 구성 파일이 나타납니다. 새 사이트를 추가 할 때마다 구성 파일을 자동으로 생성하는 다양한 도구를 만들었습니다. 그러나 다음은 내가 사용하는 기본 템플릿입니다.

<VirtualHost *:80>
    ServerAdmin [EMAIL]
    ServerName [DOMAIN]
    ServerAlias www.[DOMAIN] [DOMAIN]
    DocumentRoot /home/[USER]/domains/[DOMAIN]/html

    <Directory /home/[USER]/domains/[DOMAIN]>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
    </Directory>

    ErrorLog /home/[USER]/domains/[DOMAIN]/logs/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /home/[USER]/domains/[DOMAIN]/logs/access.log combined

    SuexecUserGroup [USER] [USER]

    suPHP_UserGroup [USER] [USER]
    suPHP_ConfigPath /home/[USER]/etc
</VirtualHost>

그러면 해당 도메인, 문서 루트 및 도메인 작동에 필요한 기타 모든 기본 사항에 대한 로깅이 설정됩니다. 이러한 파일을 /etc/apache2/sites-available/일반적으로 이름이 지정된 곳에 배치하고 다음 [USER]-[DOMAIN]a2ensite같이 활성화 / 비활성화합니다 .

sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]

구성 파일을 수정할 때마다 Apache를 다음과 같이 다시로드해야합니다.

sudo /etc/init.d/apache reload

유연성의 양을 설정하는 것이 많은 것처럼 보이지만, 제 생각에는 설정 시간보다 훨씬 큽니다. 단일 사용자 웹 서버 만 있으면되지만 나중에 단일 사용자 웹 서버 이외의 다른 것을 원한다면 추가 작업을 수행하거나 보안을 함께 삭제해야합니다.


답변

Sftp는 설치가 매우 쉽습니다. 패키지를 설치하면 openssh-serversftp가 생깁니다. 인터넷에서 접속할 수 있으면 사용자에게 올바른 비밀번호가 있는지 확인하십시오. (사전 단어가 아닌 8 개 이상의 문자에는 기호와 숫자가 있습니다).

권한의 경우 일반적으로
sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www
이렇게합니다. 그런 다음 sftp (사용자 이름 및 비밀번호 사용)로 연결 한 다음 / var / www 폴더로 이동하여 파일을 배치하여 페이지를 게시 할 수 있어야합니다.


답변

나는 webdav를 사용합니다. 우분투 서버에 설치하는 것은 매우 쉽습니다. 아파치를 설치했다면 거의 다 끝난 것입니다. 그냥 sudo a2enmod dav; service apache2 restart. 가상 사이트를 약간 구성해야합니다. 프로덕션에서 사용중인 예는 다음과 같습니다.

<VirtualHost *>
    ServerName webdav.mysite.com
    ServerAdmin webmaster@mysite.com

    DocumentRoot /srv/mysite
    DAVLockDB /var/lock/apache2/DAVLock
    <Directory /srv/mysite>
        Order allow,deny
        Allow from all
    Dav On
    DAVMinTimeout 600
    DAVDepthInfinity On
AuthName "mysite login"
AuthType Basic
AuthUserFile /srv/mysite/.htpassword
Require valid-user

    </Directory>
php_admin_value engine off
</VirtualHost>

<VirtualHost *>

    ServerName mysite.com
    ServerAlias *.mysite.com
    ServerAdmin webmaster@mysite.com

    DocumentRoot /srv/mysite/www
    <Directory /srv/mysite/www>
        Order allow,deny
        Allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /srv/mysite/cgi-bin/
</VirtualHost>

이것을 / srv / etc / apache2 / sites-available / mysite에 넣은 다음 할 수 sudo a2ensite mysite; sudo service apache2 reload있습니다.

여기서 일어나는 일은 두 개의 가상 사이트를 만든 것입니다. 하나는 www.mysite.com이고 다른 하나는 webdav.mysite.com입니다. webdav.mysite.com에서 PHP가 비활성화되었습니다.이 기능은 중요합니다.

이제 Ubuntu, Windows 및 MacOS에서 http를 통해 사이트에 액세스 할 수 있습니다. 세 가지 모두 webdav 지원 기능이 내장되어 있습니다. Ubuntu에서 webdav 네트워크 위치추가하는 방법은 다음과 같습니다 .


답변

www-data에 / var / www에 대한 쓰기 권한을 부여하고 해당 그룹에 사용자를 추가합니다. 이렇게하면 해당 디렉토리에 쓸 수있는 사용자를 쉽게 제어 할 수 있습니다.

sudo chgrp -R www-data /var/www
sudo chmod g+w -R /var/www
usermod -a -G www-data your-user


답변

사이트에 프레임 워크를 사용하고 있습니까? 드루팔, 워드 프레스 등? 예를 들어 Drupal에는 브라우저 상호 작용을 통해 업로드 할 수있는 도구가 있습니다.

삼바를 살펴 보셨습니까? Samba 공유를 설정하고 웹에 수많은 리소스가있을 수 있으며 Windows 탐색기를 사용하여 열기 / 편집 / 저장 / 삭제할 수 있습니다. / var / www를 공유하도록 설정 한 다음 “네트워크 드라이브”를 창에 매핑하십시오.

이것은 직장이나 가정 환경입니까? 마치 집처럼 들리지만 작업 환경에 있다면 Samba와 Active Directory를 Likewise-Open과 같은 도구로 페어링 할 수 있습니다. IT 상점의 사용자가 AD 자격 증명을 통해 서버의 어느 쪽 (리눅스 또는 웹 사이트)에 로그인 할 수 있도록 서버 / 웹 사이트 설정이 있습니다.

또한 Mercurial과 같은 것을 살펴볼 것을 제안합니다. 서버에 저장소를 작성하고 TortiseHG와 같은 것을 통해 창과 동기화하십시오. 나는 rsync와 같다고 가정하지만 버전 관리, 백업, 배포 기능 등 (SVN, Mercurial, Git 등 모든 옵션)


답변

sshfs를 사용할 수 있습니다. https://help.ubuntu.com/community/SSHFS


답변

이런 식으로 당신은 후

rsync -az --rsh "ssh" --rsync-path "sudo rsync" ~/website ubuntu@REMOTE-IP:/var/www